Django rest auth自定义登录表单-无法识别输入的电子邮件:";必须包括\";电子邮件\“;及;密码\"&引用;
我在Django rest auth自定义登录表单-无法识别输入的电子邮件:";必须包括\";电子邮件\“;及;密码\"&引用;,django,django-rest-framework,django-forms,django-rest-auth,django-login,Django,Django Rest Framework,Django Forms,Django Rest Auth,Django Login,我在restauthLoginView上编写了一个非常简单的自定义登录表单,如下所示: 看法 形式 模板 当我输入电子邮件和密码,然后提交表单时,Django rest auth framework会出现以下错误: 作为测试,我随后在browserable API中提供的字段中输入相同的电子邮件地址,并成功登录 为什么rest auth无法识别来自自定义模板的电子邮件?我打赌这个错误与我的{{{form.email}没有正确实现有关。接下来解决了这个问题: 此解决方法涉及删除上面显示的sett
restauth
LoginView
上编写了一个非常简单的自定义登录表单,如下所示:
看法
形式
模板
当我输入电子邮件和密码,然后提交表单时,Django rest auth framework会出现以下错误:
作为测试,我随后在browserable API中提供的字段中输入相同的电子邮件地址,并成功登录
为什么rest auth无法识别来自自定义模板的电子邮件?我打赌这个错误与我的
{{{form.email}
没有正确实现有关。接下来解决了这个问题:
此解决方法涉及删除上面显示的settings.py中的行。并在用户应用程序中的models.py
中分配USERNAME\u字段='email'
,如中所述:
接下来解决了这个问题: 此解决方法涉及删除上面显示的settings.py中的行。并在用户应用程序中的
models.py
中分配USERNAME\u字段='email'
,如中所述:
可能重复的可能重复的
class CustomLoginView(LoginView):
def get(self, request):
form = CustomUserLoginForm()
print(form.get_user())
return render(request, "api/test_template.html", context={"form": form})
class CustomUserLoginForm(AuthenticationForm):
class Meta:
model = CustomUser
fields = ('email', 'password')
{% block content %}
<div class="container">
<form method="POST">
{% csrf_token %}
<div>
<label for="{{ form.email.id_for_label }}">Email: </label>
<input type="email" {{ form.email }}>
</div>
<div>
<label for="{{ form.password.id_for_label }}">password: </label>
<input type="password" {{ form.password }}>
</div>
<button style="background-color:#F4EB16; color:blue" class="btn btn-outline-info" type="submit">Login</button>
</form>
Don't have an account? <a href="/register" target="blank"><strong>register here</strong></a>!
</div>
{% endblock %}
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_USERNAME_REQUIRED = False
AUTHENTICATION_BACKENDS = (
# Needed to login by username in Django admin, regardless of `allauth`
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
)