After seeing this post, I tried to create my own group at project setup with this migration :
from django.db import migrations
from django.contrib.auth.model
Permissions are created in a post_migrate
signal. They don't exist the first time migrations are run after a new model is added. It is probably easiest to run the post_migrate
signal handler manually:
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)
group, created = Group.objects.get_or_create(name='thing_managers')
if created:
add_thing = Permission.objects.get(codename='add_thing')
group.permissions.add(add_thing)
group.save()
create_permissions
checks for existing permissions, so this won't create any duplicates.