2012-03-24 4 views
1

Ich habe eine Funktion, die ich auf jeder einzelnen Seite laden möchte, unabhängig von Controller. Zuerst dachte ich, ich würde es einfach in ein Modell stecken und es jedes Mal aufrufen, wenn das Modul geladen wird. Die Funktion hängt jedoch von anderen Modellen ab, von denen einige noch nicht geladen sind.Erstellen einer universellen Controller-Funktion mit Web2Py

So dachte ich, wenn es möglich ist, Modell laden Reihenfolge zu steuern, könnte ich es in einem spät geladenen Modul, aber ich weiß nicht, ob Kontrolle Modellreihenfolge möglich ist, und ich bin ziemlich sicher, ein Modell Referenzierung ein anderer verletzt MVC. (Ja? Nein?)

Was ich wirklich will, ist eine Art universelle Vorsteuerfunktion, die vor den regulären Controllern aufgerufen wird, aber nachdem alle Modelle geladen sind. Wie würde ich das tun?

Antwort

3

Modelldateien werden in alphabetischer Reihenfolge ausgeführt, sodass Sie den Funktionsaufruf an das Ende der letzten Modelldatei stellen können. Weitere Details finden Sie unter here.

+0

Anthony - vielen Dank. Wenn ich also eine Modelldatei mit dem Namen "zz" erstellen würde, könnte ich sie praktisch als Vorsteuerung für meine App verwenden? Hätte es Zugang zu den gleichen Dingen, die normale Controller hätten? – Yarin

+0

Ja, es hat Zugriff auf alles, was in den vorhergehenden Modelldateien definiert wurde, sowie auf die üblichen web2py-API-Objekte. – Anthony