Za każdym razem, gdy otworzę stronę, chcę uzyskać aktualnie aktywny identyfikator projektu. Zostanie to zrobione przez chowanie poddomeny i weryfikacja, czy aktualnie zalogowany użytkownik może ją wyświetlić.Opcje udostępniania zmiennych przez Django
Gdy sięgam mój pogląd Chcę być w stanie zrobić
tasks = Task.objects.filter(project = current_project)
gdzie current_project (lub CURRENT_PROJECT lub current_project ???) został już setup.
Czy ktoś może wyjaśnić zalety/wady różnych podejść, które znalazłem w dokumentach i umieścić mnie na właściwej drodze?
- Sesje
- Middleware
- gwintów
- builtins
To było jak zrobiłem to w końcu:
Dekorator:
def check4project(fn):
current_project = 'fred'
def check(*args, **kw):
kw['project']=current_project
return fn(*args, **kw)
return check
Zobacz przykład
@login_required
@check4project
@tweetpost
def index(request, project=0):
print project
Dzięki za pomocną odpowiedź pomogłeś wyjaśnić różne opcje dla mnie. Podoba mi się dźwięk 3. ponieważ jest to łatwy sposób sprawdzenia, czy użytkownik ma dostęp do projektu w tym samym czasie i większość, ale nie wszystkie widoki muszą być świadome projektu. – PhoebeB
+1 dla dekoratora widoku. –