-
作為快捷方式,您可以使用方便的
裝飾器:login_required()from django.contrib.auth.decorators import login_required @login_required def my_view(request): ...執行以下操作:login_required()- 如果用戶未登錄,則重定向到
,在查詢字符串中傳遞當前絕對路徑。示例:settings.LOGIN_URL/accounts/login/?next=/polls/3/。 - 如果用戶已登錄,則正常執行視圖。視圖代碼可以自由假設用戶已登錄。
默認情況下,成功驗證後用戶應重定向到的路徑存儲在名為
"next"的查詢字符串參數中。如果您希望為此參數使用不同的名稱,采用可選的login_required()redirect_field_name參數:from django.contrib.auth.decorators import login_required @login_required(redirect_field_name='my_redirect_field') def my_view(request): ...請注意,如果您為
redirect_field_name提供值,您很可能還需要自定義登錄模板,因為存儲重定向路徑的模板上下文變量將使用redirect_field_name的值作為其鍵,而不是"next"(默認)。還采用可選的login_required()login_url參數。例子:from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def my_view(request): ...請注意,如果您不指定
login_url參數,則需要確保和您的登錄視圖正確關聯。例如,使用默認值,將以下行添加到您的 URLconf:settings.LOGIN_URLfrom django.contrib.auth import views as auth_views path('accounts/login/', auth_views.LoginView.as_view()),還接受視圖函數名稱和命名的 URL 模式。這允許您在 URLconf 中自由地重新映射您的登錄視圖,而無需更新設置。settings.LOGIN_URL - 如果用戶未登錄,則重定向到
本文介紹 django.contrib.auth.decorators.login_required 的用法。
聲明
login_required(redirect_field_name='next', login_url=None)
注意
login_required 裝飾器不會檢查用戶的 is_active 標誌,但默認的 會拒絕非活動用戶。AUTHENTICATION_BACKENDS
也可以看看
如果您正在為 Django 的管理員編寫自定義視圖(或需要與內置視圖使用相同的授權檢查),您可能會發現 裝飾器是 django.contrib.admin.views.decorators.staff_member_required() login_required() 的有用替代品。
相關用法
- Python Django login用法及代碼示例
- Python PIL logical_and() and logical_or()用法及代碼示例
- Python PIL logical_xor() and invert()用法及代碼示例
- Python Django logout用法及代碼示例
- Python logging.handlers.SocketHandler.makePickle用法及代碼示例
- Python logging.Logger.debug用法及代碼示例
- Python logging.debug用法及代碼示例
- Python log10()用法及代碼示例
- Python logging.LogRecord用法及代碼示例
- Python locals()用法及代碼示例
- Python list remove()用法及代碼示例
- Python len()用法及代碼示例
- Python numpy string less_equal()用法及代碼示例
- Python calendar leapdays()用法及代碼示例
- Python ldexp()用法及代碼示例
- Python list轉string用法及代碼示例
- Python lzma.LZMACompressor()用法及代碼示例
- Python Functools lru_cache()用法及代碼示例
- Python scipy linalg.pinv2用法及代碼示例
- Python list insert()用法及代碼示例
- Python lists轉XML用法及代碼示例
- Python list pop()用法及代碼示例
- Python linecache.getline()用法及代碼示例
- Python list index()用法及代碼示例
- Python list sort()用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.auth.decorators.login_required。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
