关于post_save信号和created参数

2 投票
2 回答
2026 浏览
提问于 2025-04-15 20:08

文档中提到:

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)

当我在命令行中执行:

u = User(username="cat")
u.save()
>>> --------> save() True
u.username = "dog"
u.save()
>>> --------> save() True

我期待在第二次调用 >>> --------> save() False 时,因为这是一次更新,不是吗?

2 个回答

0

我建议你使用 User.objects.create_user 这个方法,这样可以避免批量操作带来的问题。

0

看起来你自己实现的用户系统里,用户名没有设置唯一性限制吧?

撰写回答