python-2.7 - 如何在 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)
我试过这个,但它不起作用。我想检查对象是否已更新或插入。
解决方案
检查是否change==True
(首选)或obj.pk is None
。一个ModelAdmin
类是无状态的。类的一个实例ModelAdmin
附加到site
并且它不也不应该保持处理请求的状态。
推荐阅读
- webpack - Webpack、html-loader、file-loader 和 extract-loader
- vue.js - 子组件更新时如何防止 props 重置?
- android - 无法在 android studio 中构建或运行
- python - django-admin 打开一个新项目
- typescript - 来自嵌套对象的 TypeScript 模板文字字符串
- python - 从坐标标签计算 xarray 数据数组
- sql-server - sql server 使用recrusive cte获取同组中的级别
- javascript - Fullcalendar 无法解析本地 JSON
- reactjs - Material UI datetime-local 输入打开日历下拉菜单
- github - 为代码审查拉取请求创建 GitHub 操作分支