Django sorl缩略图图像字段动态上载到路径
我知道django ImageFields和FileFields中有一种动态上传路径的方法,即在字段中传递upload_to=callable,但是有没有一种方法可以通过sorl缩略图ImageField实现这一点 这是我的model.py,我的上传路径没有定义Django sorl缩略图图像字段动态上载到路径,django,django-models,sorl-thumbnail,Django,Django Models,Sorl Thumbnail,我知道django ImageFields和FileFields中有一种动态上传路径的方法,即在字段中传递upload_to=callable,但是有没有一种方法可以通过sorl缩略图ImageField实现这一点 这是我的model.py,我的上传路径没有定义 class Brand(models.Model): title = models.CharField(max_length=255, null=True, blank=True) photo = sorl.thumbn
class Brand(models.Model):
title = models.CharField(max_length=255, null=True, blank=True)
photo = sorl.thumbnail.ImageField(upload_to=upload_path)
external = models.BooleanField(_('External Brand? ("Key Account")?'))
def upload_path(self):
return u'%s' % self.title
看
Sorl缩略图对上传到没有任何特殊作用。它只是通过继承Django的FileField
来处理传递的参数,因此任何适用于标准FileField
或ImageField
的操作也将适用于sorl thumbnail的ImageField
我认为您的问题是在模型上定义方法。我所见过或自己做过的每个实现都有一个模型之外的方法。Django会自动将实例传递给方法,因此您可以通过这种方式访问模型上的数据,而不是通过self
我将此回调用于sorl:
def get_image_path(instance, filename):
"""
puts image in MEDIA_ROOT/photos/instance_id/file
"""
return os.path.join('photos', str(instance.id), filename)
class Brand(models.Model):
...
photo = sorl.thumbnail.ImageField(upload_to=get_image_path)