/ / Jak zapewnić początkowe dane SQL, gdy używana jest etykieta aplikacji? - sql, django, django-models

Jak podać początkowe dane SQL, gdy używana jest etykieta aplikacji? - sql, django, django-models

Od dokumentacja:

Django zapewnia hak do przekazywania bazy danychdowolny SQL, który jest wykonywany zaraz po instrukcji CREATE TABLE po uruchomieniu syncdb. Możesz użyć tego haka do wypełnienia domyślnych rekordów lub możesz również utworzyć funkcje SQL, widoki, wyzwalacze itp.

Haczyk jest prosty: Django szuka pliku o nazwie sql / [nazwa modelu] .sql w katalogu aplikacji, gdzie [modelname] to nazwa modelu pisana małymi literami.

To nie jest takie proste. Wydaje się, że to nie działa, gdy mój model jest zadeklarowany w podmodule aplikacji i używa mechanizmu etykiety aplikacji:

in myapps/foo/models/bar.py:

class Baz(models.Model):
...
class Meta:
app_label = "foo"

Podanie myapps / foo / sql / baz.sql nie działa, podobnie jak foo_baz.sql.

Jakieś pomysły?

Odpowiedzi:

2 dla odpowiedzi № 1

Nie wiesz, co chcesz zrobić, ale możesz napisać moduł zarządzania w aplikacji, która nasłuchuje post_syncdb sygnał.

Ale jeśli chcesz zapełnić DB, prawdopodobnie lepiej wykorzystasz urządzenia: http://docs.djangoproject.com/en/dev/howto/initial-data/