我如何獲得當前用戶在Django模板標籤? (請求對象不可訪問) 或者我如何訪問請求對象?如何讓模板標籤中的當前用戶?
回答
如果要訪問當前用戶的模板標籤,你必須把它作爲一個參數模板,像這樣:
{% my_template_tag user %}
然後確保你的模板標籤接受這個額外的參數。查看關於此主題的documentation。您還應該查看simple tags。
用戶總是附在請求,在你的模板,您可以執行以下操作:
{% if user.is_authenticated %}
{% endif %}
您不必指定「請求」即可訪問其內容
更新:
注意:is_authenticated()
總是登錄的用戶(User
對象)返回True
,但返回False
10(訪客用戶)。在這裏閱讀:https://docs.djangoproject.com/en/1.7/ref/contrib/auth/
關閉主題 – tapioco123 2013-02-11 15:19:45
'user.is_authenticated'總是返回true,所以它基本上是無用的。 – 2015-01-28 10:26:37
不!對於User(記錄的),它總是返回true,但對於AnonymousUser返回false,所以不是無用的!請仔細閱讀此處:https://docs.djangoproject.com/en/1.7/ref/contrib/auth/ – daveoncode 2015-01-29 08:25:19
這個問題已經answered here:
{% ifuser.is_authenticated %}
Welcome
'{{ user.username }}'
{% else %}
<a href="{% url django.contrib.auth.login %}">Login</a>
{% endif %}
,並確保你已經安裝在你的settings.py請求模板,背景處理器:
TEMPLATE_CONTEXT_PROCESSORS = (
...
'django.core.context_processors.request',
...
)
注:
- 使用
request.user.get_username()
in views &user.get_username
in 模板。優先直接引用用戶名屬性。 Source - 如果使用RequestContext,則此模板上下文變量可用。
- django.contrib.auth.context_processors.auth默認情況下啓用&包含變量用戶
- 你並不需要啓用django.core.context_processors.request模板背景處理器。
來源:https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates
- 1. 如何讓jquery.easytabs.js當前標籤
- 2. 如何讓用戶將iframe的當前位置加入書籤?
- 3. Django模板,如果基於當前URL值的標籤
- 4. 我如何讓Mandrill解析模板中的Handlebars標籤?
- 5. 如何在Django的模板標籤中使用模板變量?
- 6. 用戶對象的Django模板標籤
- 7. 如何讓「當前用戶」portlet返回?
- 8. 如何在django模板中的url模板標籤中嵌入標籤?
- 9. 如何更新和顯示當前用戶的標籤,標籤的acts_as_taggable_on?
- 10. 如何使用星號標記當前標籤的標籤?
- 11. 的Django如何使用模板標籤
- 12. 如何讓以前的H3標籤
- 13. 當前用戶總數標籤
- 14. 蟒蛇的Django如何過濾object_set.all當前用戶模板
- 15. Django - 在模板標籤中使用模板標籤?
- 16. 在模板標籤中使用模板標籤?
- 17. 如何在模板中使用Django自定義模板標籤?
- 18. 如何在css標籤中使用django模板標籤?
- 19. 如何獲取Jinja2模板中當前模板的文件名?
- 20. sorl.thumbnail標籤中的Django模板標籤
- 21. 如何使用Django模板存儲模板標籤的結果?
- 22. 如何讓頁面在刷新後保持當前模板?
- 23. JTabbedPane:如何限制用戶移出當前標籤
- 24. 如何ASP.NET標籤文本設置爲當前用戶名
- 25. 標籤使用的模板
- 26. Javascript中的模板標籤
- 27. 模板標籤中的Django
- 28. 包含模板標籤的Django模板變量,前{{{%some_tag%}}}
- 29. 模板標籤
- 30. 模板標籤
您可以將其創建爲背景處理器比創建模板標籤和模板,隨時調用它。在上下文處理器中,您可以在不調用模板中的函數的情況下始終獲取用戶。 – catherine 2013-02-11 15:11:20
真的很複雜的單線模板標籤..真的django如此不方便嗎? – tapioco123 2013-02-11 15:14:08
或者試着把它放在你的模板{{user.username}} – catherine 2013-02-11 15:14:35