我是Django的新手,已经阅读并尝试了我想到的所有内容。
我有一个基于模型的表格。该模型包括3个FileField字段:
img_big = models.FileField(upload_to='images/%Y/%m/b',max_length=100)
img_med = models.FileField(upload_to='images/%Y/%m/m',max_length=100)
img_sml = models.FileField(upload_to='images/%Y/%m/s',max_length=100)
在我的代码中,我想迭代这些字段并将生成的文件保存到每个字段中。 'img'是我们的文件,filename是文件名。所以,这是有效的:
new_image.img_big.save(filename, img)
但我需要一个带字段名称的变量而不是img_big,例如:
new_image.variable.save(filename, img)
or
new_image.'test_'+filename.save(filename, img)
我尝试使用setattr(),但我不知道或不知道如何使用它设置文件名,可能在这种情况下不可能。
new_image.__dict__['fieldname'].save(filename, img)
也不起作用。
答案 0 :(得分:0)
正如Paulo Bu所说,正确的解决方案很简单,使用getattr():
getattr(new_image, 'variable').save(...)
谢谢,它有效!