首页 文章

我无法在django 1.10.1版本中创建登录

提问于
浏览
0

我知道创建登录用户身份验证是基本的 . 我是使用Django的新手 .

我在创建用户身份验证时遇到问题:

Views.py

def Logins(request):
if request.method == 'POST':
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None and user.is_active:
        login(request, user)
        return HttpResponseRedirect('music/login')
    return HttpResponseRedirect('music/login')
form = Userlogin
return render(request, 'music/login.html', {'Login_form': Userlogin})

urls.py url(r'^ login / $',views.Logins,name ='login'),

它显示It shows MultiValueDictKeyError at /music/login/. "'username'"请求方法:POST请求URL:http://127.0.0.1:8000/music/login/ Django版本:1.10.4异常类型:MultiValueDictKeyError异常值:
"'username'"

的login.html

{% block body %}
{% if form.errors %}
<p>Something is wrong</p>
{% endif %}

<form action="" method="post">
    {% csrf_token %}
    <label for="email">Login:</label>
    <label for="password">Password:</label>
    <input type="password" name="password" value="" id="username">

    <input type="submit" value="login" />

</form>
{% endblock %}

提前致谢 .

2 回答

  • 2

    MultiValueDictKeyError 似乎是因为 request.POST['username'] 不存在 .

    在登录表单中添加用户名字段 .

    <form action="" method="post">
        {% csrf_token %}
        <label for="username">Username:</label>
        <input type="text" name="username">
        <label for="email">Login:</label>
        <label for="password">Password:</label>
        <input type="password" name="password" value="" id="username">
        <input type="submit" value="login" />
    
    </form>
    
  • 1

    request.POST 是一本字典 . 你应该这样做:

    username = request.POST.get('username', None)
    password = request.POST.get('password', None)
    

相关问题