Как добавить разрешение пользователю / группе во время миграции django?

Я хотел бы выполнить следующую миграцию:

# -*- 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)
    ]

В последней строке миграции я выдал ошибку, чтобы остановить выполнение и посмотреть состояние базы данных. Проблема в таблицеauth_permission по-прежнему не имеет разрешений для модели другого модуля, хотя этот другой модуль зарегистрирован в качестве зависимости этой миграции.

Я могу подтвердить, что пропущенные разрешения добавляются только после выполнения всех миграций.

Ответы на вопрос(2)

Ваш ответ на вопрос