Django Guardian с миграцией данных (добавление анонимного пользователя в публичную группу)

Я пытаюсь выполнить миграцию данных в приложении. Я хочу добавить анонимного пользователя (django-guardian AnonymousUser) в публичную группу. Почему-то пользователь не существует, когда я запускаю тест. В разработке он работает. Заранее спасибо.

Поскольку кажется, что анонимный пользователь создается на management init, я попытался импортировать модуль в apply_migration без успеха.

# Generated by Django 4.1 on 2022-10-19 12:11

from django.db import migrations
from guardian.utils import get_anonymous_user
from recipebook.settings import PUBLIC_GROUP_NAME
from django.contrib.auth.models import Group


def apply_migration(apps, schema_editor):
    import guardian.management.__init__
    public_group = Group.objects.get(
        name=PUBLIC_GROUP_NAME
    )
    user = get_anonymous_user()
    user.groups.add(public_group)

def revert_migration(apps, schema_editor):    
    public_group = Group.objects.get(
        name=PUBLIC_GROUP_NAME
    )
    user = get_anonymous_user()
    user.groups.remove(public_group)

class Migration(migrations.Migration):

    dependencies = [
        ('recipebook', '0031_recipenutrition_vitamine_b3'),
        ('guardian', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(apply_migration, revert_migration)
    ]
Вернуться на верх