【问题标题】:Django - HTML form does not submit (request.POST.get(...) is empty)Django - HTML 表单不提交(request.POST.get(...) 为空)
【发布时间】:2016-05-20 11:36:23
【问题描述】:

我有一个这样的 HTML 表单:

<form action="/submit_prform/" method="POST" class="prform" id="prform" name="prform">
{% csrf_token %}
    <div class="node" name="node_1" id="node_1">
        <input type="hidden" value="1" class="node_index" name="node_index">
        <label for="node_name_1">Node 1:</label>
        <input type="text" class="node_name" name="node_name" id="node_name_1">
        <input type="hidden" value="1" class="target_count">
        <div class="node_targets" name="node_targets">
            <div class="target" name="target_1_1">
                <label class="target_class_label" for="target_name">Target 1:</label>
                <input type="text" class="target_name">
                <label for="value">Value</label>
                <input type="text" class="value">
            </div>
        </div>
        <button type="button" class="add_target">Add target</button>
    </div>
    <input type="submit" value="Submit form">
</form>

按钮是使用Javascript添加更多目标字段。

我的 urls.py 看起来像这样:

urlpatterns = [
    url(r'^submit_prform/',pagerank_django.views.submit_prform),
    url(r'^admin/', admin.site.urls),
    url(r'^', include("pagerank_django.urls")),
]

我的 views.py 看起来像这样:

def submit_prform(request):
    if request.method == "POST":
        form = request.POST.get("prform")
        print(request, form)
        return render(request, "pagerank_django/index.html", {})

def index(request):
    return render(request, "pagerank_django/index.html", {})

我无法在视图函数中获取我提交的表单,它会打印以下内容:

[20/May/2016 11:29:36] "GET / HTTP/1.1" 200 3593
[20/May/2016 11:29:36] "GET /static/pagerank_django/pagerank.css HTTP/1.1" 304 0
<WSGIRequest: POST '/submit_prform/'> None
[20/May/2016 11:29:37] "POST /submit_prform/ HTTP/1.1" 200 3593

如何访问我在views.py 中提交的表单?

感谢您的阅读

【问题讨论】:

    标签: python django forms


    【解决方案1】:
    form = request.POST.get("prform")
    

    这是空的,因为您的表单中没有名为 prform 的字段!

    既然你在使用 django,为什么不好好利用 Django 的力量呢。

    使用Django forms

    除非您打算构建具有以下功能的网站和应用程序 只发布内容,不接受来自您的输入 访问者,您将需要了解和使用表单。

    Django 提供了一系列工具和库来帮助您构建表单 接受来自网站访问者的输入,然后处理和响应 输入。

    【讨论】:

      猜你喜欢
      • 2018-03-07
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 2015-02-13
      • 1970-01-01
      • 2012-04-14
      • 2016-02-17
      相关资源
      最近更新 更多