Я перенес а ForeignKey
в GenericForeignKey
, используя структуру contrib.contenttypes
. Чтобы получить доступ к объекту ContentType
, мне нужно перенести данные, я использовал этот код:
ContentType = apps.get_model('contenttypes', 'ContentType')
my_model_content_type = ContentType.objects.get(
app_label='my_app',
model='my_model'
)
Миграция работает, когда я запускаю manage.py migrate
, и я могу без проблем играть с обновленной моделью в оболочке.
Однако, когда я пытаюсь запустить manage.py test
, я получаю следующую ошибку в строке ContentTypes.object.get()
:
__fake__.DoesNotExist: ContentType matching query does not exist.
Запрос для ContentType.objects.all()
в это время возвращает пустой запрос.
Я попытался (как было сказано другим ответом здесь в SO) запустить это перед моим запросом, но безрезультатно:
update_contenttypes(apps.app_configs['contenttypes'])
update_contenttypes(apps.app_configs['my_app'])
Как я могу гарантировать, что строки ContentType
существуют в этой точке миграции тестовой базы данных?