Views.py没有收到POST数据

时间:2014-04-27 03:26:42

标签: javascript jquery python django html5

过去几个小时我一直试图解决这个问题无济于事。我的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数据仍为空。

1 个答案:

答案 0 :(得分:1)

使用display:none很好,这不会影响表单。使用input[type=submit]时问题出在您的HTML上:表单不会查看type=submit的输入,即使它们具有name属性也是如此。将其切换为type=number,它就能正常工作。