我有一些带有某些字段的模型:
class RankStructure(models.Model):
RankID = models.CharField(max_length=4)
SName = models.CharField(max_length=5)
Name = models.CharField(max_length=125)
LongName = models.CharField(max_length=512)
GENRE_CHOICES = (
('TOS', 'TOS'),
('TMP', 'TMP'),
('TNG', 'TNG'),
('DS9', 'DS9'),
('VOY', 'VOY'),
('KTM', 'KTM')
)
Genre = models.CharField(max_length=3, choices=GENRE_CHOICES)
image = models.FileField(upload_to='RANKS/'+<<GENRE>>+'/', blank=True)
在最后一行是图像FileField。我希望该文件夹与流派相关联。因此,如果Genra为TOS
,则该文件夹应为RANKS/TOS/image.jpg
。
如何设置以便这种情况发生? 感谢。
答案 0 :(得分:1)
您需要一个自定义上传处理程序。
def image_upload_handler(instance, filename):
return 'RANKS/{genre}/{filename}'.format(
genre=instance.genre,
filename=filename
)
class RankStructure(models.Model):
image = models.ImageField(upload_to=image_upload_handler, blank=True)
另外,我建议将此用于图片字段:https://github.com/edoburu/django-any-imagefield