基本上,我有3个类(车辆,汽车和摩托车,这两个最后延伸第一个)...在Vehicle类中有main_image属性,它是一个models.ImageField类型,你可以见吼:
class Vehicle(models.Model):
def __str__(self):
return self.title
[...]
main_image = models.ImageField(
upload_to = 'media/images/' + str(slug) + '/', verbose_name = 'Foto principal',
null = False
)
因此,str(slug)无法正常工作,因为当我上传图片时,它总是被上传到
/media/images/<django.db.models.fields.SlugField>
何时应该实际上传到
/media/images/(object-slug-value)/
我尝试了许多不同的东西,但其中任何一个都按我想要的方式工作。
如何从slug属性中获取字符串值?
答案 0 :(得分:0)
您使用的slug
是模型中的字段,而不是实例。 upload_to
takes a callable,您可以使用它来构建路径:
def get_path(instance, filename):
return 'media/images/{}/{}'.format(instance.slug, filename)
class Vehicle(models.Model):
.
.
.
main_image = models.ImageField(upload_to=get_path)