我有一个像这样的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中提交的表单?
感谢您阅读
答案 0 :(得分:0)
form = request.POST.get("prform")
这是空的,因为你的表单中没有名为prform的字段!
既然你正在使用django,为什么不充分利用Django的强大功能。
使用Django forms。
除非您计划构建具有此功能的网站和应用程序 只是发布内容,不接受你的输入 访问者,您将需要了解和使用表单。
Django提供了一系列工具和库来帮助您构建表单 接受来自网站访问者的输入,然后处理和回复 输入。