在我的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_date
与now
进行比较,如果今天是新的一天,请重置today_queries
的值)
答案 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)
注意:应对此代码进行一些调整:)