Ich migrierte eine ForeignKey
in eine GenericForeignKey
, unter Verwendung der contrib.contenttypes
Framework. Für den Zugriff auf das Objekt ContentType
Ich brauche die Daten zu migrieren, habe ich diesen Code:Django: ContentTypes während der Migration während der Tests
ContentType = apps.get_model('contenttypes', 'ContentType')
my_model_content_type = ContentType.objects.get(
app_label='my_app',
model='my_model'
)
Die Migration funktioniert, wenn ich manage.py migrate
laufen, und dann kann ich mit dem aktualisierten Modell in der Schale ohne Probleme spielen.
Allerdings, wenn ich versuche, manage.py test
zu laufen ließe, erhalte ich folgende Fehlermeldung in der ContentTypes.object.get()
Linie:
__fake__.DoesNotExist: ContentType matching query does not exist.
Abfragen von ContentType.objects.all()
zu diesem Zeitpunkt gibt eine leere queryset.
Ich habe versucht (wie in SO von einer anderen Antwort hier gerichtet) diese vor meiner Anfrage zu laufen, aber ohne Erfolg:
update_contenttypes(apps.app_configs['contenttypes'])
update_contenttypes(apps.app_configs['my_app'])
Wie kann ich sicherstellen, dass die ContentType
Reihen an diesem Punkt gibt es in der Datenbank-Migration testen?
Dies funktioniert nicht in 1.11: 'von django.contrib.contenttypes.management Import update_contenttypes' –
https://code.djangoproject.com/ticket/28092 Umbenannt –
create_contenttypes Dieser arbeitete für mich in Django 1.11 die Verwendung von umbenannt in 'update_contenttypes'. – Franey