回答
您可以使用@user_passes_test
:
from django.contrib.auth.decorators import user_passes_test
def user_is_not_logged_in(user):
return not user.is_authenticated()
@user_passes_test(user_is_not_logged_in)
def my_view(request):
...
您可以使用@user_passes_test(user_is_not_logged_in, login_url='/')
重定向到另一個網址,避免服務器錯誤。
這是工作。但是當用戶在登錄後手動點擊/ login/url時,服務器沒有響應。你能否請建議一些方法來解決這個問題。 –
@wim此方法正常工作。 –
'@user_passes_test(user_is_not_logged_in,login_url ='/')'您可以使用它重定向到另一個網址並且不會出現服務器問題。 –
嘗試這樣的事情anon_required
裝飾(未經測試):
def anon_required(view_func):
"""
Decorator for views that checks that the user is NOT logged in.
"""
def decorated(request, *args, **kwargs):
if request.user.is_authenticated():
raise HttpResponseBadRequest("Get out, you are authenticated.")
return view_func(request, *args, **kwargs)
return decorated
你可以做,而不是返回HTTP 400,喜歡的用戶重定向到他的個人資料什麼(或註銷URL,也許他想登錄作爲不同的用戶)。
只需導入一個LoginView並傳遞 - redirect_authenticated_user=True
每一件事都會在urls.py完成
所以。 urls.py是 -
from django.conf.urls import url
from django.contrib.auth.views import LoginView
urlpatterns = [
url(r'^login/$', LoginView.as_view(redirect_authenticated_user=True), name='login'),
]
就是這樣。 LoginView中的參數將通過重定向登錄用戶來解決您的問題。在documentation你可以閱讀它。
- 1. 限制用戶登錄後訪問登錄頁面php
- 2. cvs登錄問題 - 如何限制用戶從cvs登錄
- 3. 如何限制用戶登錄?
- 4. 如何限制用戶無需登錄
- 5. 如何限制某些視圖/操作以登錄用戶?
- 6. 用戶登錄後登錄視圖不更新?
- 7. 限制子目錄登錄用戶
- 8. django用戶登錄視圖
- 9. Facebook登錄後拒絕登錄權限
- 10. 登錄時的用戶限制頁面
- 11. 限制用戶的多次登錄
- 12. 如何處理用戶登錄後的其他登錄嘗試?
- 13. SWRevealViewController在登錄視圖後
- 14. 如何使用Github登錄後登錄用戶
- 15. 登錄後呈現視圖控制器
- 16. Yii - 如何防止用戶在登錄後登錄登錄頁面
- 17. Facebook登錄限制
- 18. 如何限制編輯記錄到登錄用戶?
- 19. 限制某些航線登錄用戶
- 20. 限制Swagger UI訪問 - 用戶登錄
- 21. 限制數據登錄用戶asp.net
- 22. 限制登錄嘗試,無論用戶?
- 23. 如何在用戶登錄後選擇登錄頁面?
- 24. 如何在初始登錄後自動登錄用戶?
- 25. 如何控制用戶是否在登錄中登錄兩次
- 26. 抵制登錄後回去登錄
- 27. 如何在登錄屏幕上創建登錄限制?
- 28. 如何根據用戶根據登錄的用戶登錄
- 29. 登錄用戶的「登錄」值和登錄用戶的「登出」值
- 30. 如何控制no。的用戶登錄?
檢查'request.user.is_authenticated'。 –
@PauloScardine我說的是限制一些裝飾者的「視圖」功能。 –
是否有理由不將日誌用戶重定向到他們的主頁,而不是限制訪問登錄網址? –