Von dem Dokumentation:
Django bietet einen Haken zum Übergeben der DatenbankBeliebiges SQL, das direkt nach den CREATE TABLE-Anweisungen ausgeführt wird, wenn Sie syncdb ausführen. Sie können diesen Hook verwenden, um Standarddatensätze zu füllen, oder Sie können auch SQL-Funktionen, Sichten, Trigger usw. erstellen.
Der Haken ist einfach: Django sucht nur nach einer Datei namens sql / [Modellname] .sql in Ihrem Anwendungsverzeichnis, wobei [Modellname] der Name des Modells in Kleinbuchstaben ist.
Es ist nicht so einfach. Dies scheint nicht zu funktionieren, wenn mein Modell in einem Untermodul der App deklariert ist und den App-Label-Mechanismus verwendet:
in myapps/foo/models/bar.py:
class Baz(models.Model):
...
class Meta:
app_label = "foo"
Die Bereitstellung von myapps / foo / sql / baz.sql funktioniert nicht, ebenso wenig wie foo_baz.sql.
Irgendwelche Ideen?
Antworten:
2 für die Antwort № 1Nicht sicher, was Sie tun möchten, aber Sie könnten möglicherweise ein Management-Modul in Ihrer App schreiben, die für die post_syncdb Signal.
Aber wenn Sie nur die DB füllen möchten, sind Sie wahrscheinlich besser dran mit Fixtures: http://docs.djangoproject.com/en/dev/howto/initial-data/