0

在我的项目中,我有一个带有学校模型和学校建议模型的应用程序。

学校模型具有各种图像的字段,例如徽标、印章等:

seal_image = models.ImageField(upload_to="sealimgs", null=True, blank=True)
logo_image = models.ImageField(upload_to="logos", null=True, blank=True)

schoolsuggestion 模型有一个字段表示相应的学校字段是什么,还有一个图像字段。

field_name = models.CharField(max_length=255, default="")
image_field = models.ImageField(upload_to='img', null=True, blank=True)

当学校建议获得批准时,我覆盖了 save 以便它通过 getattr(field_name) 获取关联学校的字段并使用 setattr(field_name, image_field) 设置它(我正在简化语法,但你明白了)。

问题是,文件仍然保存在 img 中,大概是因为我使用的是 setattr 而不是图像字段特定的保存,它会将其上传到正确的目录。

那么我该怎么做呢?有意义的是,我可能会以某种方式获取属性的 upload_to 值,以某种方式使用该文件路径重新保存图像,然后在重新保存的图像上使用 setattr,但我不知道如何做前两个。

4

1 回答 1

1

我修改了上传到这个函数,并将其包含在类 def 上面的文件中:

def get_upload_to(instance, filename):
    return School._meta.get_field(instance.field_name).upload_to+"/"+filename
于 2012-04-26T17:01:31.167 回答