使用django电子邮件作为用户名如何向用户返回消息?
我正在尝试使用,如果用户提供的数据错误,我找不到返回登录页面并向用户发送消息的方法 这是我的使用django电子邮件作为用户名如何向用户返回消息?,django,Django,我正在尝试使用,如果用户提供的数据错误,我找不到返回登录页面并向用户发送消息的方法 这是我的url.py url(r'^login$', 'django.contrib.auth.views.login', {'authentication_form': EmailAuthenticationForm}, name='login'), def login_user(request): if request.method == 'POST': email = requ
url.py
url(r'^login$', 'django.contrib.auth.views.login', {'authentication_form': EmailAuthenticationForm}, name='login'),
def login_user(request):
if request.method == 'POST':
email = request.POST.get('email')
password = request.POST.get('password')
if email and password:
user = authenticate(email=email, password=password)
if user:
return HttpResponseRedirect('/')
else:
message = 'No such user'
else:
message = 'both email and password are required!'
else:
message = 'wrong method!'
这是我的views.py
url(r'^login$', 'django.contrib.auth.views.login', {'authentication_form': EmailAuthenticationForm}, name='login'),
def login_user(request):
if request.method == 'POST':
email = request.POST.get('email')
password = request.POST.get('password')
if email and password:
user = authenticate(email=email, password=password)
if user:
return HttpResponseRedirect('/')
else:
message = 'No such user'
else:
message = 'both email and password are required!'
else:
message = 'wrong method!'
如果身份验证失败,您必须使用
{{message}
呈现/重定向您自己的登录页面如果身份验证失败,您必须使用{message}呈现/重定向您自己的登录页面
我认为您犯了一个错误,您在views.py
模块中提供了自己的login\u用户
视图,但在URL配置中链接到Django的Django.contrib.auth.views.login
您可能应该使用django.contrib.auth.views.login
作为登录视图
您还需要提供一个
注册/login.html
模板。当表单传递到上下文时,您将能够获得错误信息。您可以使用作为示例。我认为您犯了一个错误,您在views.py
模块中提供了自己的login\u user
视图,但在URL配置中链接到Django的Django.contrib.auth.views.login
您可能应该使用django.contrib.auth.views.login
作为登录视图
您还需要提供一个
注册/login.html
模板。当表单传递到上下文时,您将能够获得错误信息。您可以使用作为示例。谢谢。那是我第一次尝试。然后我意识到POST请求不是由django.contrib.auth.views.login处理的(但是,GET请求是可以处理的)。可能是因为django email as username
使用了自己的身份验证后端。“POST请求未被处理”-您的意思是写“GET请求未被处理”?我可以看到POST请求是:“可能是因为django电子邮件作为用户名使用了自己的auth后端。”-我不确定你的意思。使用的auth后端不会影响模板或模板上下文。我知道这听起来很奇怪。我做了很多测试,而POST并不是由django.contrib.auth.views.login
视图处理的。我将发布我的模板和终端输出。也许问题是因为我做了一些愚蠢的事情。好吧,我做的一切都是从零开始的。它现在起作用了django.contrib.auth.views.login正常处理POST请求。我不知道以前怎么了。但你是对的。谢谢非常感谢。那是我第一次尝试。然后我意识到POST请求不是由django.contrib.auth.views.login处理的(但是,GET请求是可以处理的)。可能是因为django email as username
使用了自己的身份验证后端。“POST请求未被处理”-您的意思是写“GET请求未被处理”?我可以看到POST请求是:“可能是因为django电子邮件作为用户名使用了自己的auth后端。”-我不确定你的意思。使用的auth后端不会影响模板或模板上下文。我知道这听起来很奇怪。我做了很多测试,而POST并不是由django.contrib.auth.views.login
视图处理的。我将发布我的模板和终端输出。也许问题是因为我做了一些愚蠢的事情。好吧,我做的一切都是从零开始的。它现在起作用了django.contrib.auth.views.login正常处理POST请求。我不知道以前怎么了。但你是对的。谢谢