Skip to main content
 首页 » 编程设计

python之在 Django 中创建时将用户添加到组

2025年05月04日40开发

只有在创建用户后将此用户的字段指定为“True”时,我才希望将用户添加到组中。创建的每个用户都会有一个与之关联的“用户配置文件”。这是实现此类事情的正确方法吗?

模型.py:

def add_group(sender, instance, created, **kwargs): 
    if created: 
        sender = UserProfile 
        if sender.is_in_group: 
            from django.contrib.auth.models import Group 
            g = Group.objects.get(name='Some Group') 
            g.user_set.add(sender) 
 
post_save.connect(add_group, sender=UserProfile) 

提前致谢!

请您参考如下方法:

另一种选择是使用post_save 信号

from django.db.models.signals import post_save 
from django.contrib.auth.models import User, Group 
 
def add_user_to_public_group(sender, instance, created, **kwargs): 
    """Post-create user signal that adds the user to everyone group.""" 
 
    try: 
        if created: 
            instance.groups.add(Group.objects.get(pk=settings.PUBLIC_GROUP_ID)) 
    except Group.DoesNotExist: 
        pass 
 
post_save.connect(add_user_to_public_group, sender=User) 

唯一的麻烦是如果你使用固定装置......(因此 DoesNotExists ..)