简体   繁体   English

request.POST 参数丢失

[英]request.POST parameters are missing

Hello I am trying to pass some values from my signup form to a django view but for some reason the values are missing.您好,我正在尝试将一些值从我的注册表单传递到 django 视图,但由于某些原因,这些值丢失了。
My view.py :我的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')

My register.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>

and my urls.py :和我的urls.py

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

My problem is that when the views.signup function is running it is missing all three values that I am trying to send : name, email and password.我的问题是,当 views.signup 函数运行时,它缺少我尝试发送的所有三个值:姓名、电子邮件和密码。
It is a POST request (and not GET) but the only values in the QueryDict are the "encoding" and "csrfmiddlewaretoken" values.它是一个 POST 请求(而不是 GET),但 QueryDict 中唯一的值是“编码”和“csrfmiddlewaretoken”值。
Any help is appreciated!任何帮助表示赞赏!

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

The request.POST data is a dict filled with the name of the input fields of the HTML form. request.POST 数据是一个填充了 HTML 表单输入字段名称的字典。

Try with :尝试:

 <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