如何在 Django 的 model.save() 中检测模型的新实例
在重写特定模型的 save() 方法时,是否可以确定它是新记录还是更新记录?
While overriding the specific model's save() method, Is it possible determine whether it's a new record or an update?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果
self.pk
为None
,则它是一个新记录。此主题也已讨论过
If
self.pk
isNone
it is a new record.This topic has been discussed also here
现代 Django 中的首选解决方案是检查 self._state.adding ,
现已记录在此处:
https://docs.djangoproject .com/en/5.0/ref/models/instances/#django.db.models.Model._state
The preferred solution in modern Django is to check
self._state.adding
This is now documented here:
https://docs.djangoproject.com/en/5.0/ref/models/instances/#django.db.models.Model._state