Создание групп пользователей и назначение разрешений при регистрации - PullRequest
0 голосов
/ 05 мая 2020

Я использую Allauth и пытаюсь:

1- Создавать группы пользователей в моем коде (не в командной строке). Я нашел следующий код, который, как мне кажется, сделает это, но я не знаю, где именно в моем проекте его разместить (также, правильно ли выглядит этот код?).

from django.contrib.auth.management import create_permissions

def create_group(apps, schema_editor):
    for app_config in apps.get_app_configs():
        create_permissions(app_config, apps=apps, verbosity=0)

    # I dont understand this piece of code
    group, created = Group.objects.get_or_create(name='registered_users')
    if created:
        add_thing = Permission.objects.get(codename='add_thing')
        group.permissions.add(add_thing)
        group.save()

2- Я желая добавлять пользователей в группу при регистрации (а не вручную). Я нашел этот код, который мне кажется правильным, но я не уверен, куда его поместить (в пользователях / сигналах? Также, этот код выглядит нормально?).

# set group to registered_user
@receiver(post_save, sender=User)
def set_group(sender, instance, created, **kwargs):
    if created:
       group = Group.objects.get(name='registered_users')
       instance.groups.add(group)
       instance.save()

Большое спасибо.

...