我有一个我认为很简单的问题。在我的模型中我有一个models.ImageField看起来像这样:
class CMSDocument(BaseItem):
thumb = models.ImageField(upload_to= './media/',blank=True)
但是我想把它上传到'.media/' + self.pk+ '.png'
我试图在模型的save方法中更新字段,但是这不起作用,因为调用'save'时pk未知。我还尝试添加一个自定义函数用于upload\u to,如下所示:Django: Any way to change "upload_to" property of FileField without resorting to magic?。但这只会让这个领域空无一人。我能做什么?在
编辑:我使用django1.6
编辑:我用了一个不太好的post_save信号:
^{pr2}$
主键是由数据库分配的,所以您必须等到模型行保存在数据库中。在
首先将数据分为两个模型,并在子模型上显示缩略图:
如您所见,我对缩略图使用了自定义字段,而不是ImageField。在
因此,创建一个字段.py应重写ImageField继承的FileField类的pre_save函数的文件:
^{pr2}$因为cmsmediadadocument是从CMSDocument类继承的,所以在调用pre_save时,渐进式PK已经保存在数据库中,因此您可以从model\u instance中提取PK。在
我测试了代码,应该可以正常工作。在
测试中使用的管理文件:
相关问题 更多 >
编程相关推荐