/ / Wie werden SQL-Anfangsdaten bereitgestellt, wenn das App-Label verwendet wird? - Sql, Django, Django-Modelle

Wie kann ich SQL-Anfangsdaten bereitstellen, wenn das App-Label verwendet wird? - Sql, Django, Django-Modelle

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 № 1

Nicht 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/