我有我认为是一个简单的问题.在我的模型中,我有一个models.ImageField,它看起来像这样:
class CMSDocument(BaseItem):
thumb = models.ImageField(upload_to= './media/',blank=True)
Run Code Online (Sandbox Code Playgroud)
但我想将其上传到'.media/' + self.pk+ '.png'我试图更新模型的save方法中的字段,但这不起作用,因为调用'save'时不知道pk.我也试着为upload_to添加一个自定义函数,如下所示:Django:有什么方法可以改变FileField的"upload_to"属性而不需要魔术?.但这只会让场地空洞.我能做什么?
编辑:我使用Django 1.6
编辑:我使用了一个不太好的post_save信号:
def video_embed_post_save(sender, instance=False, **kwargs):
document = DocumentEmbedType.objects.get(pk=instance.pk)
new_thumb = "media/%s.png" % (document.pk,)
if not document.thumb == new_thumb:
document.thumb = new_thumb
document.save()
...
Run Code Online (Sandbox Code Playgroud)