过去几个小时我一直试图解决这个问题无济于事。我的django视图中有一个表单充满了动态生成的内容:
<div class="list-group">
{% for article in article_list %}
<a class="list-group-item" name="article" id="{{ article.id }}" onclick="getArticleData(this)">
<h4 class="list-group-item-heading"> {{ article.title }} </h4>
<p class="list-group-item-text"> {{ article.content }} </p>
</a>
{% endfor %}
</div>
<form id="hiddenForm" method="post" action="/article/">
<input id="hiddenInput" style="display:none" type="submit" name="articleData" value=""></input>
</form>
这些元素中的每一个都附加到Javascript中的onclick()方法。这用于确定从动态列表中单击了哪个元素。单击值的唯一ID设置为hiddenInput的值,该值位于hiddenForm内。然后使用此值提交表单。
function getArticleData(source)
{
$('#hiddenInput').attr('value', source.id);
$('#hiddenForm').submit();
}
这是我的python视图中相应函数中的代码:
if request.method == "POST":
print('GOT POST')
print(request.POST)
这是我收到的输出 - 帖子数据为空。
[27/Apr/2014 03:22:14] "POST /accounts/loggedin/ HTTP/1.1" 200 2453
GOT POST
<QueryDict: {}>
我是否在处理HTML和Django之间翻译的表单信息时出错?我还打印出整个HTTP请求,POST数据仍为空。
答案 0 :(得分:1)
使用display:none
很好,这不会影响表单。使用input[type=submit]
时问题出在您的HTML上:表单不会查看type=submit
的输入,即使它们具有name
属性也是如此。将其切换为type=number
,它就能正常工作。