Ich mag diese Zeilen Code auf Serverstart ausgeführt haben (sowohl Entwicklung und Produktion):Wohin mit Django-Startup-Code?
from django.core import management
management.call_command('syncdb', interactive=False)
es in settings.py
Putting nicht funktioniert, wie es die Einstellungen erfordert bereits geladen werden.
Wenn Sie sie in eine Ansicht einfügen und extern auf diese Ansicht zugreifen, funktioniert das auch nicht, da es einige Middlewares gibt, die die Datenbank verwenden. Diese werden fehlschlagen und nicht auf die Ansicht zugreifen.
Sie in eine Middleware zu setzen würde funktionieren, aber das würde jedes Mal aufgerufen werden, wenn auf meine App zugegriffen wird. Eine mögliche Lösung könnte darin bestehen, eine Middleware zu erstellen, die den gesamten Job erledigt und sich dann von MIDDLEWARE_CLASSES
entfernt, so dass sie nicht mehr aufgerufen wird. Kann ich das tun, ohne zu viel Affen zu flicken?
Danke für die schnelle Antwort. Das ist genau das, was ich brauche. –
Das ist ein schöner Trick, von dem ich nicht wusste. –
Laut http://stackoverflow.com/questions/6791911/execute-code-when-django-starts-once-only kann dies problematisch sein. Es wird vorgeschlagen, die Startfunktion in urls.py – Michael