Django检查用户创建时间

时间:2014-01-13 15:36:56

标签: python django

因此,在任何Django项目中,通过覆盖save方法来判断是否已创建对象非常简单:

def save(self, *args, **kwargs):
    created = False
    if not self.pk:
        created = True
    super(ModelName, self).save(*args,**kwargs)
    if created:
        #do what you want or call a signal

但是我需要在django.contrib.auth.models.User创建User后调用函数。我不想实际编辑用户模型的save方法。

我怎么能这样做?

注意:

使用pre_save将无效,因为模型中的所有信息都不可用,这是必要的。

1 个答案:

答案 0 :(得分:5)

您可以使用post_save信号。

from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

@receiver(post_save)
def do_your_thing(sender, **kwargs):
    if sender is User:
        if kwargs["created"]:
            print kwargs["instance"].password
            # do your thing