Momentan sind alle meine Modelle in models.py. Wird sehr chaotisch.
Kann ich die separate Datei wie base_models.py
haben, damit ich meine Hauptmodelle dort hinstelle, die ich nicht berühren möchte
Auch der gleiche Fall für Ansichten und in separaten Ordner, anstatt eine neue App zu entwickeln
Ja, es ist machbar. Es ist jedoch nicht besonders hübsch:
Machen Sie Modelle zu einem Modul, so dass Ihre Verzeichnisstruktur wie folgt aussieht:
%Vor% jetzt, die Magie liegt in __init__.py
und ein paar kleine Extras in den Modellen. __init__.py
:
some_model.py:
%Vor%Alles, was acjohnson55 gesagt hat, plus die Tatsache, dass Sie das app_label-Attribut in der Meta-Klasse jedes Modells angeben müssen.
Ein Link zu einem aktuellen Beispiel auf github: Ссылка
Sie können die Modelldatei wie folgt trennen:
------- Modelle /
-------------- init .py
-------------- usermodels.py
--------------othermodel.py
im init .py:
--------------- von usermodels import *
--------------- von othermodel import *
und in der * models.py fügen Sie die META-Klasse hinzu:
-------- Klasse Meta:
-------------- app_label = 'appName'
Ja, machen Sie einfach einen Ordner mit dem Namen models
und legen Sie in diesem Ordner alle Ihre getrennten Modelldateien ab. Sie müssen eine Datei namens __init__.py
in den Ordner models
einfügen, damit sie als models
-Modul betrachtet wird. In __init__.py
verwenden Sie from ... import ...
, um die gewünschten Namen direkt in yourapp.models
zu speichern, andernfalls müssen Sie sie als yourapp.models.base_model
oder den von Ihnen verwendeten Untermodulnamen importieren.
Außerdem müssen Sie in jedem Modell ein Meta-Attribut hinzufügen, das app_label = 'yourapp'
um sicherzustellen, dass deine Modelle als Teil der App erkannt werden.
Tags und Links python django django-models