【问题标题】:Views.py not receiving POST dataViews.py 未收到 POST 数据
【发布时间】:2014-04-27 03:26:42
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery python django html


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      相关资源
      最近更新 更多