Django在保存之前更新值

时间:2017-11-30 20:09:11

标签: django django-models

我试图更新模型中的计数器以保存数据库查询。所以我有一个带有picture_count字段的文章模型。文章的图片是m2m。

每当我添加或删除文章中的图片(使用Django Admin)时,我想更新文章picture_count。但似乎我错了。

我以为我可以简单地覆盖文章模型的保存方法。但这并不像

那样有用
def save(self, *args, **kwargs):
    self.picCount = self.pictures.count()
    super(Articles, self).save(*args, **kwargs) # Call the "real" save() method.

问题在于m2m尚未更新。我尝试过之后调用它(然后再次调用save),但对象已经过时了。我应该刷新对象并再次保存它还是有更好的地方来更新这个计数?

1 个答案:

答案 0 :(得分:0)

由于您正在处理m2m关系,因此您希望覆盖save_related方法。

<强> Admin.py

def save_related(self, request, form, formsets, change):
    self.picCount = self.pictures.count()
    super(Articles, self).save_related(request, form, formsets, change)

请注意,如果您使用的是python 3.x,则无需将任何内容传递给super