Python 使用signal创建用户名为的组

Python 使用signal创建用户名为的组,python,django-models,django-signals,Python,Django Models,Django Signals,我正在尝试使用signals.py为每个新用户创建一个组 信号。py看起来是这样的: @receiver(post_save, sender=User) def create_profile(sender, instance, created, **kwargs): if created: Profile.objects.create(user=instance) Profile.objects.create(group=) 和mymodels.py class Profile

我正在尝试使用signals.py为每个新用户创建一个组

信号。py看起来是这样的:

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
    Profile.objects.create(user=instance)
    Profile.objects.create(group=)
和mymodels.py

class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
group = models.OneToOneField(Group, null=True, blank=True, on_delete=models.CASCADE)
manager = models.BooleanField(default=False)
first_visit = models.BooleanField(default=True)
如何使用用户名设置默认组?是“用户群”吗

您可以先构造(或检索)一个名为用户名的组,然后在创建的配置文件中设置该组:

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
    group, __ = Group.objects.get_or_create(name='Group of {}'.format(instance.username))
    Profile.objects.create(user=instance, group=group)
    instance.groups.add(group)
@receiver(保存后,发送方=用户)
def create_配置文件(发送方、实例、已创建、**kwargs):
如果创建:
组,uuu=group.objects.get_或_create(name='group of{}.format(instance.username))
Profile.objects.create(用户=实例,组=组)
instance.groups.add(组)
但是,您可能希望使用
.create(..)
over
get_或_create(..)
来阻止用户注册为
'admin'
,例如,要在(可能)已存在的组
管理员组
中自动注册,您可以首先构造(或检索)名称为用户名称的组,然后在创建的配置文件中设置该组:

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
    group, __ = Group.objects.get_or_create(name='Group of {}'.format(instance.username))
    Profile.objects.create(user=instance, group=group)
    instance.groups.add(group)
@receiver(保存后,发送方=用户)
def create_配置文件(发送方、实例、已创建、**kwargs):
如果创建:
组,uuu=group.objects.get_或_create(name='group of{}.format(instance.username))
Profile.objects.create(用户=实例,组=组)
instance.groups.add(组)

但是,您可能希望使用
.create(..)
over
get_或_create(..)
来阻止用户注册为
'admin'
,例如,在一个(可能)已经存在的组
管理员组
中自动注册,尽管如此,这还是比较容易。。我可以使用该信号将默认创建组设置为用户吗?组已创建,但我没有将其设置为用户,因此error@Mcflan_7:是的,您可以将组添加到
实例中。组
。我想这会更容易。。我可以使用该信号将默认创建组设置为用户吗?组已创建,但我没有将其设置为用户,因此error@Mcflan_7:是的,您可以将组添加到
实例.groups