Django登录错误,无法登录

2024-04-23 09:54:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一个类似的问题,但我没有找到我想要的答案。我是Django新手,我试图了解Django中的身份验证,但我遇到了这样一个错误:

AttributeError: 'AnonymousUser' object has no attribute '_meta'

这是我的代码:

视图.py

^{pr2}$

表单.py

class LoginForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('username', 'password')

登录.html

{% extends 'base.html' %}

{% block content %}
    <h1>Login</h1>
    {% if error %}
        {{ error }}
    {% endif %}
    <form method="POST">
        {% csrf_token %}
        {{form.as_p}}
        <input type="submit" value="login">
    </form>
{% endblock %}

任何帮助都将不胜感激。谢谢!在


Tags: django答案pyform身份验证objecthtml错误
2条回答

您将密码设置为普通文本。试试这个。在

def login(request):
    if request.method == "POST":
        form = LoginForm(request.POST)

        if form.is_valid():

            # normalized data
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']

            user = authenticate(username=username, password=password)
            if user is not None:
                login(request,user)
                return redirect('/')
            else:
                error = " Sorry! Username and Password didn't match, Please try again ! "
                return render(request, 'girl/login.html',{'error':error})
    else:
        form = LoginForm()
    return render(request, 'girl/login.html', {"form":form})

您只需要从forms.Form而不是forms.ModelForm继承

class LoginForm(forms.Form):
    username = forms.CharField()
    password = forms.CharField(widget=forms.PasswordInput())

另外,在你看来,编辑类似这样的东西

^{pr2}$

相关问题 更多 >