Django.fun

Django creating multiple groups with post_save

I need to auto-create several groups with a post_save signal. I almost have this working however, as a novice, I can't get the syntax right. When I use the code below, instead of two groups, I get one group with the name ('manager', 'employee').

How would I change this to add two groups - manager and employee?

# autocreate basic employee groups when new company is created
@receiver(post_save, sender=Tenant)
def create_basic_group(sender, created, **kwargs):
    if created:
        # Get or create group
        new_group, created = Group.objects.get_or_create(
            name=('manager', 'employee'))

Currently, get_or_create fn is taking name as string ('manager', 'employee')

You should create the groups in for loop like:

# autocreate basic employee groups when new company is created
@receiver(post_save, sender=Tenant)
def create_basic_group(sender, created, **kwargs):
    if created:
        groups_to_check = ["manager", "employee"]
        for group_name in groups_to_check:
            Group.objects.get_or_create(name=group_name)

Tutorials

Константы Python: Улучшение управляемости вашего кода

Современный Python: начинаем проект с pyenv и poetry

Настройка проекта Python — виртуальные среды и управление пакетами

Использование requests в Python — тайм-ауты, повторы, хуки

Понимание декораторов в Python

ProcessPoolExecutor в Python: полное руководство

map() против submit() с ProcessPoolExecutor в Python

Понимание атрибутов, словарей и слотов в Python

Полное руководство по slice в Python

Выпуск Django 4.0

Безопасное развертывание приложения Django с помощью Gunicorn, Nginx и HTTPS

Автоматический повтор невыполненных задач Celery

Django REST Framework и Elasticsearch

Докеризация Django с помощью Postgres, Gunicorn и Nginx

Асинхронные задачи с Django и Celery

Релизы безопасности Django: 3.2.4, 3.1.12 и 2.2.24

Выпуски исправлений ошибок Django: 3.2.3, 3.1.11 и 2.2.23

Эффективное использование сериализаторов Django REST Framework

Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

Выпущенные релизы безопасности Django: 3.2.1, 3.1.9 и 2.2.21

View all tutorials →