1

我是 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)

也不行。

4

1 回答 1

0

正如 Paulo Bu 所注意到的,正确的解决方案很简单,使用 getattr():

getattr(new_image, 'variable').save(...)

谢谢,它有效!

于 2014-03-01T22:26:59.383 回答