将默认组分配给新用户Django

时间:2018-11-04 18:22:34

标签: django

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

2 个答案:

答案 0 :(得分:5)

例如,您可以使用@post_save信号,每次创建User时,都会将给定的组添加到User的组中。通常,信号驻留在handlers.py的{​​{1}}目录中名为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的{​​{1}}中注册MyAppConfig

__init__.py

答案 1 :(得分:3)

如果对于任何新的10000000 = first core 01000000 = second core 11000000 = first and second core 00100000 = third core 10100000 = first and third core 11100000 = first second and third core实例都应该发生这种情况,则可以将处理程序连接到function Set-Affinity([string]$Username,[int[]]$core){ [int]$affinty = 0 $core | %{ $affinty += [math]::pow(2,$_)} get-process -IncludeUserName | ?{$_.UserName -eq $Username} | %{ $_.ProcessorAffinity = $affinty } } Set-Affinity -username "TESTDOMAIN\TESTUSER" -core 0,1,2,3 信号:

User

将此代码包含在您的应用中,并确保已按照规定将其导入,例如here