【问题标题】:how to set default group for new user in django?如何在 django 中为新用户设置默认组?
【发布时间】:2018-07-10 16:21:45
【问题描述】:

如何为我创建的新用户设置默认组? 我没有创建用户的自定义模型,我的 django 版本是 1.11。

【问题讨论】:

    标签: django django-models django-authentication django-users


    【解决方案1】:

    如果您不使用自定义用户模型或代理模型,一种可能的选择是使用信号,因此无论何时创建用户,您都可以分配相应的组:

    from django.contrib.auth.models import User, Group
    from django.db.models.signals import post_save
    from django.dispatch import receiver
    
    @receiver(post_save, sender=User)
    def create_user_profile(sender, instance, created, **kwargs):
        if created:
            instance.groups.add(Group.objects.get(name='group_name'))
    

    【讨论】:

    • 我测试了,但是没有设置组。
    • 这对我有用:@receiver(post_save, sender=User) def create_user_profile(sender, instance, created, **kwargs): if created: instance.groups.add(Group.objects.get(name='group_name'))
    • 哦!!当然!!愚蠢的我,我忘记了那个小组是多对多的领域,我从记忆中发布了我的答案。对不起!很高兴你明白了,我会为下一个用户更新问题。如果您想帮助更多人,请将其标记为已接受!
    • 另请注意,这种多对多关系需要一个 Id,因此即使您编写自定义用户模型,您也无法覆盖保存方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 2013-01-30
    • 2011-04-26
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多