在我的项目中,我有一个带有学校模型和学校建议模型的应用程序。
学校模型具有各种图像的字段,例如徽标、印章等:
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,但我不知道如何做前两个。