打开模型的Django管理页面时如何编辑记录的值

时间:2019-10-04 21:29:27

标签: django

在我的Django应用中,我有一个模型,其中有一个IntegerField用来保存今天完成的查询数量,另一个字段则保存该字段的最后修改日期。

class logs(models.Model):
   today_queries = models.IntegerField("today's queries", default=0, help_text="Total number of today's queries.")
   update_date = models.DateField(default=datetime.date.today)

我的问题是,每次我打开logs模型的Django管理页面时,today_queries的值都会被检索并显示(显然是默认行为),但是如果明天这个数字是不正确的等几天到来(应该是0)。

一旦打开today_queries模型的Django管理页面,我如何编辑logs的值(以便将update_datenow进行比较,如果今天是新的一天,请重置today_queries的值)

1 个答案:

答案 0 :(得分:0)

您可以在ModelAdmin的change_view方法中进行操作,请在此处查看文档-> https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

类似这样的事情应该可以解决:

def change_view(self, request, obj_id):
    instance = self.get_queryset(request).get(pk=obj_id)
    instance.today_queries += 1
    instance.save()
    return super(YOUR_MODELADMIN, self).change_view(request, obj_id)

注意:应对此代码进行一些调整:)