我最近开始在我的项目中使用django-rest-framework,但我遇到了一个问题。 这是一个简单的身份验证表格:
<form action="{% url 'rest_framework:login' %}" method="post">
{% csrf_token %}
<input type="e-mail" name="username" value="" placeholder="Логин" maxlength="100" required="required">
<input type="password" name="password" value="" placeholder="Пароль" maxlength="100" required="required">
<button type="submit" class="lightbluebtn">Войти</button>
</form>
我无法弄清楚如何验证它。我只需要在表单上显示错误。 每次我提交包含无效数据的表单时,我都会重定向到rest-framework登录页面。 我还有django-rest-framework默认网址:
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
有没有办法将它用于django默认表单?
你能帮我解决一下吗? 我将非常感谢你的帮助。答案 0 :(得分:2)
如果您使用的是session authentication api,那么您不需要rest_framework登录页面,该页面通常在开发环境中很有用,您只需指向{% url 'login' %}
页面(使用django.contrib.auth.views.login视图),并通过命名您的registration/login.html
覆盖该模板,输出表单错误只需使用{{ form.error }}
,例如:
{# file registration/login.html #}
{% if form.errors %}
<div class="alert alert-danger">
<p>Your email and password didn't match. Please try again.</p>
</div>
{% endif %}
<form action="{% url 'login' %}" method="post">
{% csrf_token %}
<input type="e-mail" name="username" value="" placeholder="Логин" maxlength="100" required="required">
<input type="password" name="password" value="" placeholder="Пароль" maxlength="100" required="required">
<button type="submit" class="lightbluebtn">Войти</button>
</form>