Ich möchte den Äquivalent von manage.py loaddata
aus einer Django-Ansicht aufrufen. Ich möchte in der Lage sein, anzugeben, wo die Daten von und in welche Anwendung geladen werden sollen.Programmgesteuert mit Djangos Ladedaten
Irgendwelche Ideen?
Ich möchte den Äquivalent von manage.py loaddata
aus einer Django-Ansicht aufrufen. Ich möchte in der Lage sein, anzugeben, wo die Daten von und in welche Anwendung geladen werden sollen.Programmgesteuert mit Djangos Ladedaten
Irgendwelche Ideen?
Jeder django-admin.py
(manage.py
) Befehl, wie in der documentation gesehen, können Sie aus dem Code aufrufen mit:
from django.core.management import call_command
call_command('loaddata', 'myapp')
Wo ersten param den Befehlsnamen, alle anderen Position params sind die gleichen wie Befehlszeile Positionsparameter und alle Schlüsselwortparameter sind Optionen.
Sie können auch Option "Ausführlichkeit = 0" für die Unterdrückung Konsole Ausgabe hinzufügen: call_command ('loaddata', 'fixture_name.json', Ausführlichkeit = 0) –
Docs hier: https://docs.djangoproject.com/en/ 1.8/ref/django-admin/# running-management-commands-from-your-code – Renato
Bitte beachten Sie, dass ** es nicht geeignet ist, den 'loaddata' Befehl direkt in einer Datenmigration ** zu verwenden, da dieser intern am meisten lädt aktuelle Modelldefinitionen und verwendet diese, um historische Daten in einem Fixture zu deserialisieren. Das ist falsches Verhalten. Lösung hier: http://StackOverflow.com/a/39743581/2293304 – Rockallite