- 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
