Wie kann ich einem Benutzer / einer Gruppe während einer Django-Migration eine Berechtigung hinzufügen?

Ich möchte folgende Migration durchführen:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.contrib.auth.models import Permission
from django.db import migrations
from django.conf import settings
from django.contrib.auth.models import Group, User


def add_api_group(apps, schema_editor):

    Group.objects.create(name=settings.API_USER_GROUP)
    # get_or_create returns a tuple, not a Group
    group = Group.objects.get(name=settings.API_USER_GROUP)
    permissions = Permission.objects.filter(codename__in = [
        'add_topic',
    ])
    group.permissions.add(*permissions)


def add_api_user(apps, schema_editor):

    user = User.objects.create_user(username=settings.API_USER, password=settings.API_USER_PASSWORD)
    group = Group.objects.get(name=settings.API_USER_GROUP)
    user.groups.add(group)

class Migration(migrations.Migration):

    dependencies = [
        ('nd_content', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(add_api_group),
        migrations.RunPython(add_api_user)
    ]

In der letzten Zeile der Migration habe ich einen Fehler ausgegeben, um die Ausführung zu stoppen und den Datenbankstatus zu überprüfen. Das Problem ist der Tischauth_permission hat immer noch nicht die Berechtigungen eines Modells eines anderen Moduls, obwohl dieses andere Modul als eine Abhängigkeit von dieser Migration registriert ist.

Ich kann bestätigen, dass fehlende Berechtigungen nur hinzugefügt wurden, nachdem alle Migrationen ausgeführt wurden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage