Najlepszym wyborem z dużym zestawem modeli jest użycie modułów django na swoją korzyść i po prostu utworzenie folderu o nazwie modele. Przenieś stary models.py do tego folderu modeli i zmień jego nazwę na __init__.py
. Pozwoli to na rozdzielenie każdego modelu na bardziej szczegółowe pliki wewnątrz tego folderu modelu.
Następnie wystarczy zaimportować każdy model do przestrzeni nazw __init__.py
.
Tak więc, na przykład, może chcesz rozdzielić na:
yourapp/
models/
__init__.py # This file should import anything from your other files in this directory
basic.py # Just an example name
morespecificmodels.py # Just an example name
managers.py # Might want to separate your manager into this
wówczas __init__.py
może być tylko:
from basic import * # You should replace * with each models name, most likely.
from managers import YourManager # Whatever your manager is called.
Jest to struktura, która używam kiedy moje pliki modelowe dostać Ogromne, jednak staram się rozdzielać rzeczy na bardziej wtykowe aplikacje tak często, jak to możliwe - więc rzadko mnie to wykorzystuje.
Mam nadzieję, że to pomoże.
Jak w takim razie radzisz sobie z modelem .py wymagającym importowania manage.py i na odwrót? – Jeff
manage.py nie powinien importować modeli - dany model będzie zawsze dostępny jako 'self.model' na menedżerze. – jacobian
To świetnie ... chyba że zestaw kwerend menedżera musi odwoływać się do innego modelu - nie można go zaimportować i MUSI umieścić go w models.py (np. Jeśli wykluczasz elementy istniejące w innym modelu itp.). –