使用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请求。我不知道以前怎么了。但你是对的。谢谢