Come posso ottenere l'utente corrente in un tag modello django? (l'oggetto richiesta non è accessibile) O come posso accedere all'oggetto richiesta?Come ottenere l'utente corrente in un tag di modello?
risposta
Se si desidera accedere l'utente corrente in un tag template, è necessario passare come parametro nei modelli, in questo modo:
{% my_template_tag user %}
Quindi assicurarsi che il tag modello accetta questa parametro extra. Guarda il documentation su questo argomento. Dovresti anche dare un'occhiata a simple tags.
utente è sempre allegato alla richiesta, nei tuoi modelli è possibile effettuare le seguenti operazioni:
{% if user.is_authenticated %}
{% endif %}
Non è necessario specificare "richiesta" per accedere ai suoi contenuti
UPDATE:
essere consapevoli: is_authenticated()
tornare sempre True
per l'utente loggato (User
gli oggetti), ma restituisce False
per AnonymousUser
(utenti ospiti). Leggi qui: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/
Questo è fuori tema – tapioco123
'user.is_authenticated' restituisce sempre true quindi è sostanzialmente inutile. –
no! Restituisce sempre true per l'utente (quelli registrati), ma restituisce false per AnonymousUser, quindi non è inutile! Leggi qui attentamente: https://docs.djangoproject.com/en/1.7/ref/contrib/auth/ – daveoncode
la questione è stata già answered here:
{% ifuser.is_authenticated %}
Welcome
'{{ user.username }}'
{% else %}
<a href="{% url django.contrib.auth.login %}">Login</a>
{% endif %}
e assicurarsi di avere il processore richiesta di contesto modello installato nel vostro settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.request',
...
)
Nota:
- Usa
request.user.get_username()
in viste &user.get_username
in modelli. Preferito su attributo nome utente di riferimento direttamente. Source - Questa variabile di contesto del modello è disponibile se viene utilizzato un RequestContext.
- django.contrib.auth.context_processors.auth è abilitata di default & contiene l'utente variabile
- NON è necessario attivare django.core.context_processors.request processore contesto modello.
Fonte: https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates
- 1. Come ottenere tag sul commit corrente
- 2. Come ottenere l'URL corrente all'interno di un modello Django?
- 3. Come ottenere l'istanza del modello corrente da inlineadmin in Django
- 4. Come ottenere il modello di eccezione GCC corrente
- 5. URL tag modello in modello di Django
- 6. Modello Django, se tag basato sul valore corrente dell'URL
- 7. Come ottenere l''articolo' corrente in un binding di ItemsSource
- 8. Come utilizzare un filtro modello su un tag modello personalizzato?
- 9. Tag all'interno tag nel modello di Django
- 10. Come ottenere il percorso corrente in Aurelia
- 11. Ottenere valore javascript variabile in Django tag modello url
- 12. Come ottenere l'ID di un tag di ancoraggio in jQuery?
- 13. Come ottenere l'URL corrente
- 14. Come ottenere l'ora corrente
- 15. Come ottenere l'ProcessID corrente?
- 16. Corrente di accesso Modello in primavera-mvc
- 17. Come arrivare oggetto modulo corrente modello Yii2
- 18. Come posso rilevare la pagina corrente in un plug-in di tag Jekyll?
- 19. Come ottenere il nome del file del modello corrente all'interno del modello Jinja2?
- 20. Come posso ottenere la data corrente in uno script CloudFormation?
- 21. Come ottenere il percorso corrente in HtmlHelper?
- 22. come posso ottenere l'ora corrente in C#?
- 23. Come ottenere l'ID utente corrente in CloudKit?
- 24. Come ottenere il nome della vista corrente dal modello di layout in Rails?
- 25. Come ottenere l'icona dell'applicazione corrente in ios
- 26. Laravel - Come ottenere l'utente corrente in AppServiceProvider
- 27. Come ottenere la data corrente in ReactNative?
- 28. come ottenere la posizione corrente in FragmentPagerAdapter?
- 29. cakephp utilizzare un altro modello all'interno del modello corrente
- 30. Come ottenere l'ora corrente formattata in Flex
È possibile creare come processore contesto di creazione di tag template e chiamarlo sempre in un modello. Nel processore di contesto è possibile ottenere l'utente senza chiamare sempre la funzione in un modello. – catherine
Davvero complicato per un tag modello di una fodera .. È davvero django così ingiustamente? – tapioco123
Oppure prova a inserire questo modello {{user.username}} – catherine