Mam plik wypełniony modelami osadzonymi głęboko w mojej aplikacji, a nie w pliku models.py lub katalogu modeli.
Zasadniczo jest to plik wskazujący na tabele w starszej bazie danych, dlatego umieszczam go w oddzielnym pliku.
Jednak teraz, gdy próbuję skonfigurować wersję testową, muszę mieć możliwość tworzenia wszystkich tabel za pośrednictwem syncdb.
Czy jest jakiś sposób, aby to zrobić? Czy muszę utworzyć tabele ręcznie przy użyciu SQL?
Odpowiedzi:
2 dla odpowiedzi № 1temp_app / models.py
from my.deep.in.code.modelfile import model1
from my.deep.in.code.modelfile import model2
Dodaj temp_app do zainstalowanych aplikacji (upewnij się, że masz również w tym.py w katalogu)
Uruchom Syncdb
Usuń temp_app z zainstalowanych aplikacji
1 dla odpowiedzi nr 2
czas uderzenia w czoło
Okay, więc ta część jest kluczowa: jeśli importujesz modele z innego miejsca w projekcie, a nie w zwykłych plikach models.py, upewnij się, że dodajesz:
class Meta:
app_label = "foo"
W przeciwnym razie modele będą ignorowane przez syncdb!
Próbowałem czegoś na wzór tego, co napisał Ted, ale z jakiegoś powodu nie było, dopóki nie dodałem app_label
część, w której syncdb był w stanie stworzyć modele.