繁体   English   中英

request.POST 参数丢失

[英]request.POST parameters are missing

您好,我正在尝试将一些值从我的注册表单传递到 django 视图,但由于某些原因,这些值丢失了。
我的view.py

@csrf_exempt
def signup(request):

   if request.method =='POST':
       for key, value in request.POST.lists():
           print(" DEBUG %s %s" % (key, value))
       print(request.POST['name'],email=request.POST['email'])
   return render(request, 'front_app/login.html')

我的register.html

 <form class="form" method="post" action="{% url 'signup' %}" name="submitForm">
    {% csrf_token %}
    <input type="text" class="name" placeholder="Name" id="name" required>
    <input type="email" class="email" placeholder="Email" id="email" required>
    <div>
    <input type="password" class="password" placeholder="Password (8 characters minimum)" id="password" minlength="8" required>
    </div>

    <input type="submit" class="submit" value="Register" >
  </form>

和我的urls.py

urlpatterns = [
    # other not related urls
    path('signup', views.signup, name='signup'),
    ]

我的问题是,当 views.signup 函数运行时,它缺少我尝试发送的所有三个值:姓名、电子邮件和密码。
它是一个 POST 请求(而不是 GET),但 QueryDict 中唯一的值是“编码”和“csrfmiddlewaretoken”值。
任何帮助表示赞赏!

正如塞尔丘克评论的那样,

request.POST 数据是一个填充了 HTML 表单输入字段名称的字典。

尝试:

 <form class="form" method="post" action="{% url 'signup' %}" name="submitForm">
    {% csrf_token %}
    <input type="text" class="name" placeholder="Name" id="name" name="name" required>
    <input type="email" class="email" placeholder="Email" id="email" name="email" required>
    <div>
    <input type="password" class="password" placeholder="Password (8 characters minimum)" id="password" minlength="8" name ="password" required>
    </div>

    <input type="submit" class="submit" value="Register" >
  </form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM