关于 post_save 信号和 created 参数
Posted
技术标签:
【中文标题】关于 post_save 信号和 created 参数【英文标题】:about the post_save signal and created argument 【发布时间】:2011-01-24 20:18:33 【问题描述】:docs 说:
post_save
django.db.models.signals.post_save
created
A boolean; True if a -new- record was create.
我有这个:
from django.db.models.signals import post_save
def handle_new_user(sender, instance, created, **kwargs):
print "--------> save() "+str(created)
post_save.connect(handle_new_user, sender=User)
当我在 shell 中做时:
u = User(username="cat")
u.save()
>>> --------> save() True
u.username = "dog"
u.save()
>>> --------> save() True
当我第二次 save() 时,我希望 >>> --------> save() False
因为是更新?不是吗?
【问题讨论】:
你使用的是什么版本的 Django?当我在 1.1 上使用完全相同的代码时,它工作得非常好。 【参考方案1】:好像你已经实现了自己的用户,它对用户名没有唯一约束?
【讨论】:
我正在实现“从 django.contrib.auth.models 导入用户”【参考方案2】:我建议你使用User.objects.create_user
来避免批量操作。
【讨论】:
以上是关于关于 post_save 信号和 created 参数的主要内容,如果未能解决你的问题,请参考以下文章
忽略 django 的 post_save 信号中对 m2m 关系的更改
Django 从 post_save 信号访问 ManyToMany 字段