gpt4 book ai didi

python - 使用信号创建带有用户名的组

转载 作者:行者123 更新时间:2023-12-01 06:47:07 24 4
gpt4 key购买 nike

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

Signals.py 看起来像这样:

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

和我的models.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:
<b>group</b>, __ = Group.objects.get_or_create(name='Group of {}'.format(instance.username))
Profile.objects.create(user=instance, group=<b>group</b>)
instance.<b>groups.add(group)</b>

但是,您可能希望使用 .create(..) 而不是 get_or_create(..) 来阻止用户注册为 'admin' 例如,自动注册到(可能)已经存在的组管理员组

关于python - 使用信号创建带有用户名的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59177448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com