Django - HTML表单不提交(request.POST.get(...)为空)

时间:2016-05-20 11:36:23

标签: python django forms

我有一个像这样的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中提交的表单?

感谢您阅读

1 个答案:

答案 0 :(得分:0)

form = request.POST.get("prform")

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

既然你正在使用django,为什么不充分利用Django的强大功能。

使用Django forms

  

除非您计划构建具有此功能的网站和应用程序   只是发布内容,不接受你的输入   访问者,您将需要了解和使用表单。

     

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