Django sorl缩略图图像字段动态上载到路径

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

我知道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.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)