Django检查用户创建时间

 蹼蹼蹡蹡Joseph 发布于 2023-02-03 11:16

因此,在任何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

但是我需要User在从django.contrib.auth.models.User创建一个函数之后调用一个函数.我宁愿不必实际编辑用户模型的save方法.

我怎么能这样做?

注意:

使用pre_save将无法工作,因为模型中的所有信息都不可用,这是必要的.

1 个回答
  • 您可以使用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
    

    2023-02-03 11:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有