【问题标题】:Django Form request.POST.get() always returns emptyDjango Form request.POST.get() 总是返回空
【发布时间】:2016-10-09 04:58:34
【问题描述】:

对不起,如果这是一个菜鸟问题。我正在为一个 Django 应用程序创建一个登录表单,但我无法让它工作。 request.POST.get() 不返回任何内容,因此身份验证总是失败。我错过了什么明显的东西吗?

login.html:

{% extends "base.html" %}

{% block content%}

<h2>Welcome! Please login to continue.</h2> <br>
<form action="{% url 'account:authenticate' %}" method="post">
    {% csrf_token %}
    <div >
        <label for='username'> Username: </label>
        <input type='text' name='Username' id='username'> <br><br>
        <label for='password'>Password:  </label>
        <input type='password' name='Password' id='password'><br><br>
        <input type='submit' value='Login'>
    </div>
</form>

views.py的相关部分:

from django.shortcuts import render, get_object_or_404
from datetime import datetime   
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.template import loader
from random import randrange
from django.contrib.auth import authenticate

def login(request):
    return render (request, 'login.html')

def authenticate(request):
    usern = request.POST.get('username', '')
    passw = request.POST.get('password', '')
    user = authenticate(username = usern, password = passw)      
    if user is not None:
        authenticate.login(request, user)
        return HttpResponseRedirect('/voters/instructions')
    else:
        return HttpResponseRedirect('/account/loginfail')

def loginfail(request):
    return render (request, 'loginfail.html')

我正在使用 Django 1.10。谢谢!

【问题讨论】:

    标签: python django


    【解决方案1】:

    查看表单输入字段中的名称,它们区分大小写。在 Django 中这样做

     usern = request.POST.get('Username', '')
     passw = request.POST.get('Password', '')
    

    或以 html 形式将输入名称字段设为小写

    【讨论】:

    • 就是这样。谢谢!
    • @Girish 有没有办法通过“id”属性而不是“名称”访问?
    • 嘿@M.Gar 它实际上不在 Django 的控制范围内。它是提交表单的方式。我不知道你的用例到底是什么。但是,如果您需要这种确切的情况,也许您可​​以执行解析所有名称并替换为前端中的 id 值之类的操作。
    • 对于未来的读者,请务必使用 camelCase 和非破折号或下划线命名您的输入。 - & _ 中断解析。
    猜你喜欢
    • 2020-08-09
    • 2019-08-26
    • 2020-02-14
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多