Als Teil eines Django-Projekts kann mein Benutzer aus einer Vielzahl von Optionen auswählen. Die Funktionalität für jede Option wird in einer separaten App gespeichert. Meine Projektstruktur sieht ungefähr so aus:Iterieren über eine Teilmenge von Apps in Django
MyProject/
MyProject
App1
App2
Options/
Option1/
Option2/
Option3/
…
…
manage.py
Option1, Option2 usw. ist jeweils eine App in seinem eigenen Recht, und aufgeführt in INSTALLED_APPS
Meine Frage ist: Gibt es eine Möglichkeit von Iterieren über jede App in den Optionen enthalten Verzeichnis. Angenommen, jede App enthält eine Datei namens utils.py mit einer Funktion namens foo in jeder Datei utils.py.
Gibt es eine Möglichkeit etwas wie dies zu tun:
from .. import Options
survey = [ app.utils.foo() for app in Options]
dies nicht möglich, gibt es eine Möglichkeit, nur alle Apps iterieren? Kann ich vielleicht etwas mit django.apps
machen?
Hallo Tobey, das ist wirklich hilfreich, danke. Ich kann das ['OPTIONS-N'] Bit nicht ganz zum Laufen bringen, ist das nur eine Abkürzung für eine Liste aller Apps, die im Optionsverzeichnis enthalten sind? oder gibt es eine Syntax, mit der ich nicht vertraut bin? – Tim
auch, das gibt mir den Fehler: Modul 'Options.Option1' hat kein Attribut 'utils'. Wenn ich von .options1 import utils einfüge, wird es in Ordnung funktionieren, aber dann brauche ich diese Zeile für jede App, die den Punkt des Codes an erster Stelle vereitelt, weil ich möchte, dass es dynamisch ist. – Tim
Ja, "Option-N" war eine Abkürzung für eine Liste von Optionen. Stellen Sie sicher, dass alle Ihre "Option-N" Ordner ein "__init __. Py" enthalten. Möglicherweise müssen Sie die Zeile 'from hinzufügen. importieren utils da – Tobey