- Django 4.0 中的新函數。
返回登錄後重定向到的 URL。默認實現解析並返回
(如果設置),否則返回next_page。LOGIN_REDIRECT_URL
本文介紹django.contrib.auth.views.LoginView.get_default_redirect_url的用法。
聲明
get_default_redirect_url()
以下是LoginView 的作用:
- 如果通過
GET調用,它會顯示一個登錄表單,該表單會發布到相同的 URL。稍後再詳細介紹。 - 如果使用用戶提交的憑據通過
POST調用,它會嘗試讓用戶登錄。如果登錄成功,視圖將重定向到next中指定的 URL。如果未提供next,它將重定向到(默認為settings.LOGIN_REDIRECT_URL/accounts/profile/)。如果登錄不成功,它會重新顯示登錄表單。
您有責任為登錄模板提供 html,默認情況下稱為 registration/login.html。這個模板被傳遞了四個模板上下文變量:
form:表示的AuthenticationForm對象。Formnext:成功登錄後重定向到的 URL。這也可能包含一個查詢字符串。site:當前,根據Site設置。如果您沒有安裝站點框架,這將設置為SITE_ID的實例,它從當前的RequestSite派生站點名稱和域。HttpRequestsite_name:site.name的別名。如果您沒有安裝站點框架,這將設置為的值。有關站點的更多信息,請參閱“sites” 框架。request.META['SERVER_NAME']
如果您不想調用模板 registration/login.html ,可以通過額外參數將 template_name 參數傳遞給 URLconf 中的 as_view 方法。例如,此 URLconf 行將使用 myapp/login.html 代替:
path('accounts/login/', auth_views.LoginView.as_view(template_name='myapp/login.html')),
您還可以指定 GET 字段的名稱,其中包含使用 redirect_field_name 登錄後要重定向到的 URL。默認情況下,該字段稱為 next 。
這是一個示例 registration/login.html 模板,您可以將其用作起點。它假定您有一個定義 content 塊的 base.html 模板:
{% extends "base.html" %}
{% block content %}
{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}
{% if next %}
{% if user.is_authenticated %}
<p>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p>Please login to see this page.</p>
{% endif %}
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<table>
<tr>
<td>{{ form.username.label_tag }}</td>
<td>{{ form.username }}</td>
</tr>
<tr>
<td>{{ form.password.label_tag }}</td>
<td>{{ form.password }}</td>
</tr>
</table>
<input type="submit" value="login">
<input type="hidden" name="next" value="{{ next }}">
</form>
{# Assumes you set up the password_reset view in your URLconf #}
<p><a href="{% url 'password_reset' %}">Lost password?</a></p>
{% endblock %}
如果您已自定義身份驗證(請參閱自定義身份驗證),您可以通過設置 authentication_form 屬性來使用自定義身份驗證表單。此表單必須在其__init__() 方法中接受request 關鍵字參數,並提供返回經過身份驗證的用戶對象的get_user() 方法(此方法僅在表單驗證成功後才會調用)。
相關用法
- Python Django LoginRequiredMixin用法及代碼示例
- Python Django Log用法及代碼示例
- Python Django LogEntry.action_flag用法及代碼示例
- Python Lock acquire()用法及代碼示例
- Python Lock release()用法及代碼示例
- Python Lock locked()用法及代碼示例
- Python Django Lower用法及代碼示例
- Python Django Loader用法及代碼示例
- Python Django Lookup用法及代碼示例
- Python List remove()用法及代碼示例
- Python List insert()用法及代碼示例
- Python Django Layer.get_fields用法及代碼示例
- Python Django Library.filter用法及代碼示例
- Python Django Library.inclusion_tag用法及代碼示例
- Python List clear()用法及代碼示例
- Python Django Layer用法及代碼示例
- Python List reverse()用法及代碼示例
- Python Django LineString.y用法及代碼示例
- Python Django Layer.extent用法及代碼示例
- Python List append()用法及代碼示例
- Python Django Length用法及代碼示例
- Python List cmp()用法及代碼示例
- Python Django Layer.srs用法及代碼示例
- Python Django Layer.num_fields用法及代碼示例
- Python Django Layer.spatial_filter用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.auth.views.LoginView.get_default_redirect_url。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
