Ihre beste Wette mit einem großen Satz von Modellen ist es, django Module zu Ihrem Vorteil zu verwenden, und erstellen Sie einfach einen Ordner namens Modelle. Verschieben Sie Ihre alte models.py in diesen Modellordner und benennen Sie sie in __init__.py
um. Auf diese Weise können Sie jedes Modell in spezifischere Dateien innerhalb dieses Modellordners aufteilen.
Sie müssten dann nur jedes Modell in den Namensraum __init__.py
importieren.
So zum Beispiel, können Sie es in trennen:
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
Dann wird Ihr __init__.py
kann nur sein:
from basic import * # You should replace * with each models name, most likely.
from managers import YourManager # Whatever your manager is called.
Dies ist die Struktur, die ich benutze, wenn meine Modell-Dateien erhalten riesig, aber ich versuche, Dinge so oft wie möglich in Pluggable-Apps zu trennen - so wird das selten von mir verwendet.
Hoffe, das hilft.
Wie gehen Sie dann sauber mit models.py um, die manager.py importieren muss und umgekehrt? – Jeff
manager.py sollte keine Modelle importieren müssen - das betreffende Modell wird immer als 'self.model' im Manager verfügbar sein. – jacobian
Das ist großartig ... es sei denn, das QuerySet Ihres Managers muss auf ein anderes Modell verweisen - dann können Sie es nicht importieren und müssen es in models.py einfügen (z. B. wenn Sie Elemente ausschließen, die in einem anderen Modell existieren, usw.). –