django models...
Verfasst: Freitag 30. Mai 2008, 06:15
Kennt jemand einen Weg um zusätztliche django models zu benutzten ohne das diese in der "Haupt model datei" eingebunden ist, oder als seperate django app (settings.INSTALLED_APPS) eingebunden wurde?
Ich überlege gerade, wie PyLucid Plugins eigene models bekommen können, siehe: http://pylucid.org/phpBB2/viewtopic.php?t=227 (en)
Das ist dann interessant, wenn man aufwendigere Plugins realisieren möchte, wie ein kleines Blog, Forum oder Kommentar funktion...
Mir fällt spontan nur ein, das jeweilige Plugin auch in settings.INSTALLED_APPS aufzuführen, obwohl es keine eigenständige Applikation in dem Sinne ist. Das funktioniert, habe es schon einmal getestet.
Mit INSTALLED_APPS umgeht man aber in gewisser weise den PyLucid plugin Administrator. Wenn man also damit ein Plugin installiert / deinstalliert, hat es keine Auswirkung auf die zusätzlichen Tabellen. Ganz so schlimm wäre das aber auch nicht...
Ich denke es gibt zwei Knackpunkte, wenn man nicht INSTALLED_APPS nutzt: Das erzeugen der Tabellen mit syncdb und das initialisieren der models Klassen.
Weiß jemand wie genau models initialisiert werden? Ist es aufwendig das selber zu machen?
Ich könnte mir vorstellen, das es via MonkeyPatch gehen würde, aber das ist wohl nicht gerade die beste Art und Weise.
Evtl. könnte auch das existierende models.py die plugin models selber importieren und fertig.
EDIT: Hm. Denke ich da eigentlich zu kompliziert? Könnte man einfach irgendwo eine models klasse erstellen und nutzten, wenn die passende Tabelle existiert?
Ich überlege gerade, wie PyLucid Plugins eigene models bekommen können, siehe: http://pylucid.org/phpBB2/viewtopic.php?t=227 (en)
Das ist dann interessant, wenn man aufwendigere Plugins realisieren möchte, wie ein kleines Blog, Forum oder Kommentar funktion...
Mir fällt spontan nur ein, das jeweilige Plugin auch in settings.INSTALLED_APPS aufzuführen, obwohl es keine eigenständige Applikation in dem Sinne ist. Das funktioniert, habe es schon einmal getestet.
Mit INSTALLED_APPS umgeht man aber in gewisser weise den PyLucid plugin Administrator. Wenn man also damit ein Plugin installiert / deinstalliert, hat es keine Auswirkung auf die zusätzlichen Tabellen. Ganz so schlimm wäre das aber auch nicht...
Ich denke es gibt zwei Knackpunkte, wenn man nicht INSTALLED_APPS nutzt: Das erzeugen der Tabellen mit syncdb und das initialisieren der models Klassen.
Weiß jemand wie genau models initialisiert werden? Ist es aufwendig das selber zu machen?
Ich könnte mir vorstellen, das es via MonkeyPatch gehen würde, aber das ist wohl nicht gerade die beste Art und Weise.
Evtl. könnte auch das existierende models.py die plugin models selber importieren und fertig.
EDIT: Hm. Denke ich da eigentlich zu kompliziert? Könnte man einfach irgendwo eine models klasse erstellen und nutzten, wenn die passende Tabelle existiert?