首页 > 解决方案 > 如何在 python 2.7 django 中保存时检查对象是插入还是更新

问题描述

def save_model(self, request, obj, form, change):
    if self._state.adding is True:
        super(TaskAdmin, self).save_model(request, obj, form, change)
    else:
        if 'hours_per_day' in form.changed_data:
            messages.info(request, "Hours per Day has changed.")

            if date.today():
                TaskHourChange.objects.filter(date_changed=date.today()).delete()
            taskchange = TaskHourChange.objects.create(
                date_changed=date.today(), prev_hours_per_day=obj.hours_per_day, task=obj)
            taskchange.save()
        else:
            messages.info(request, "Hours per Day has not changed")
        super(TaskAdmin, self).save_model(request, obj, form, change)

我试过这个,但它不起作用。我想检查对象是否已更新或插入。

标签: python-2.7django-admin

解决方案


检查是否change==True(首选)或obj.pk is None。一个ModelAdmin类是无状态的。类的一个实例ModelAdmin附加到site并且它不也不应该保持处理请求的状态。


推荐阅读