Jedes Mal, wenn ich eine Seite öffne, möchte ich die aktuell aktive Projekt-ID erhalten. Dies wird durch Checken der Subdomain und Überprüfen des aktuell angemeldeten Benutzers erreicht.Django-Optionen, um Variablen weithin verfügbar zu machen
Sobald ich meine Ansicht erreichen möchte ich in der Lage sein, zu tun
tasks = Task.objects.filter(project = current_project)
wo current_project (oder CURRENT_PROJECT oder current_project ???) hat Setup bereits.
Kann mir jemand die Vor-/Nachteile der verschiedenen Ansätze, die ich in den Dokumenten gefunden habe, erklären und mich auf den richtigen Weg bringen?
- Sessions
- Middleware
- Threading
- builtins
Dies war, wie ich es am Ende tat
Decorator:
def check4project(fn):
current_project = 'fred'
def check(*args, **kw):
kw['project']=current_project
return fn(*args, **kw)
return check
Beispiel anzeigen
@login_required
@check4project
@tweetpost
def index(request, project=0):
print project
Danke für Ihre hilfreiche Antwort, es hat geholfen, die verschiedenen Optionen für mich zu klären. Ich mag den Sound von 3. weil es eine einfache Möglichkeit ist, den Benutzer zu validieren hat Zugriff auf das Projekt zur gleichen Zeit und die meisten, aber nicht alle Ansichten müssen das Projekt bewusst sein. – PhoebeB
+1 für einen Ansichtsdekorateur. –