gpt4 book ai didi

django - 将默认组分配给新用户 Django

转载 作者:行者123 更新时间:2023-12-04 14:39:12 24 4
gpt4 key购买 nike

我正在尝试为每个注册到系统中的新用户分配一个组。我已经在另一个问题中阅读了一些关于它的内容,但我真的不知道在哪里添加必要的代码以使其工作。
我正在使用 Django 2.1.3,并且正在使用 allauth 记录用户(社交登录,但在创建 User 表中的新实例时它应该没有任何区别)

最佳答案

您可以使用 @post_save信号例如,每次 User创建后,将给定组添加到 User 的组中.通常信号驻留在一个名为 handlers.py 的文件中。在 signals app 的目录,因此您可能应该创建或修改以粗体列出的文件:

app/
signals/
__init__.py
handlers.py
__init__.py
apps.py
...
# app/signals/handlers.py

from django.db.models.signals import post_save
from django.dispatch import receiver
from django.conf import settings
from django.contrib.auth.models import Group

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def save_profile(sender, instance, created, **kwargs):
if created:
g1 = Group.objects.get(name='group_name')
instance.groups.add(g1)

在哪里 group_name是您要添加的组的名称。

然后你应该导入 handlers.py MyAppConfig 中的模块(如果您还没有构建这样的配置,请创建一个):
# app/apps.py

from django.apps import AppConfig

class MyAppConfig(AppConfig):
name = 'app'
verbose_name = "My app"

def ready(self):
import app.signals.handlers

并注册 MyAppConfig__init__.pyapp :
# app/__init__.py

default_app_config = 'app.apps.MyAppConfig'

关于django - 将默认组分配给新用户 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53143964/

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