Kann ich die Modelle in django in verschiedene Dateien aufteilen?

8

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

    
user825904 05.12.2012, 07:59
quelle

4 Antworten

10

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 :

%Vor%

some_model.py:

%Vor%     
tback 05.12.2012, 08:21
quelle
2

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: Ссылка

    
Ioan Alexandru Cucu 05.12.2012 08:25
quelle
0

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'

    
Weizhi 05.12.2012 08:25
quelle
0

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.

    
acjay 05.12.2012 08:23
quelle

Tags und Links