Views.py未接收POST数据

Views.py not receiving POST data

本文关键字:POST 数据 py Views      更新时间:2023-09-26

在过去的几个小时里,我一直在努力解决这个问题,但没有成功。在我的一个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数据仍然是空的。

使用display:none是可以的,这不会影响表单。问题在于HTML,使用input[type=submit]:表单不会查看带有type=submit的输入,即使它们具有name属性。切换到type=number,它就会工作。