In Django, è possibile accedere alla sessione utente corrente da un tag personalizzato?


1 Answers

Nessun offesa intesa come se Sebastian fosse un trucco utile a un certo punto, ma stranamente il 24 dicembre in un post di blog sull'accesso ai dati dell'utente nell'Admin, James Bennett, il manager di rilascio di Django, ha detto questo sull'utilizzo del threadlocal mod :

Un grande disclaimer: ci sono molti e potenziali usi per questi tipi di funzionalità. Molti di loro sono sbagliati e stupidi e non dovresti provarli. ... Inoltre, a volte qualcuno vedrà suggerire che queste funzionalità possono essere ottenute con il cosiddetto "hack threadlocal"; questo in pratica comporta l'applicazione di request.user in una sorta di variabile magica disponibile globalmente, ed è una cosa molto cattiva da usare se non sai cosa stai facendo. Generalmente è anche una cosa molto cattiva da usare anche se sai cosa stai facendo, dal momento che probabilmente lo stai facendo solo perché sei pigro e non hai voglia di assicurarti di trasmettere le informazioni correttamente. Quindi se vedi qualcuno che suggerisce di farlo usando un "threadlocal", ignora quella persona.

Non dicendo che dovresti ignorare Sebastian, ma potrebbe valere la pena di perseguire altre strade piuttosto che usare threadlocal che non è considerato una buona pratica.

Question

Sto scrivendo un tag personalizzato in Django che dovrebbe produrre un valore memorizzato in una sessione utente, ma non riesco a trovare un modo per accedere all'oggetto sessione da una funzione di tag personalizzata. C'è un modo per farlo, senza assegnare manualmente l'oggetto sessione a una variabile di contesto?









Related