【问题标题】:BUMP - django form request.POST.get('field-name', '') always emptyBUMP - django 表单 request.POST.get('field-name', '') 始终为空
【发布时间】:2018-03-07 06:56:41
【问题描述】:

试图从表单中获取一些值,但参数始终为空。这是我的 urls.py 的路径:

url((r'^partners-email$'), views.partners_email, name="Partners Email"),

这是我在模板中的一个简单表格:

<form method="POST" action="/partners-email">
        <input name="email" class="form-control" id="client-email">
        <input type="submit" value="Submit" />
</form>

这是我在views.py中的函数:

def partners_email(request):
    from_email = request.POST.get('email', '')
    print('MY_TAG: ' + from_email)

输出总是:

“我的标签:”

有什么想法吗?

非常感谢您

【问题讨论】:

  • 你在表单标签后面加了 {% csrf_token %} 吗??你应该。
  • 什么打印(request.POST)
  • 您可以尝试使用curl 或邮递员发送帖子请求吗?
  • 是的,我以前有过,但在表单内部还有其他 div。虽然那是问题,所以我把所有东西都搬走了。忘记了 csrf_token。但我只是在表单中添加回来,没有任何区别
  • 正如@Vicmathur 所问,您是否检查过request.POST 中的内容?另外,在提交表单之前是否在电子邮件输入字段上应用了任何javascript?

标签: python html django forms


【解决方案1】:

您的输入元素没有name 属性,因此浏览器永远不会为它们发送数据。

【讨论】:

  • {% csrf_token %}
    改成这个了,还是不行
  • 什么打印(request.POST)
【解决方案2】:

试试看。

<input type="text" name="email" class="form-control" id="client-email">

【讨论】:

  • 这个打印语句的输出是什么?打印请求。POST
  • 打印请求.method?
猜你喜欢
  • 1970-01-01
  • 2021-11-12
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多