【问题标题】:How to get the value of a hidden input in django views如何在 django 视图中获取隐藏输入的值
【发布时间】:2020-06-17 11:43:10
【问题描述】:

我正在开发一个 django 应用程序。在应用程序中,我在表单中有一个下拉按钮。还有一个隐藏的输入字段将保存所选下拉项目的值。 (我通过jQuery 实现了这一点)。我想访问views.py文件中隐藏字段的值。

现在提交表单时,我只返回一个 None 值。我不确定我做错了什么。这是我目前的代码

HTML 模板

<form method="post" action="{% url 'test_app:get_data' %}">
    {% csrf_token %}
    <div class="dropdown">
        <button class="btn btn-primary btn-lg btn-block dropdown-toggle fruit-btn" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            Fruit
        </button>
        <input type="hidden" name="fruit-name" id="fruit-name" value="" disabled>
        <div class="dropdown-menu">
            <ul class="list-group" role="menu" aria-labelledby="dropdownMenu">
                <li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Apple</a></li>
                <li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Banana</a></li>
                <li class='list-group-item'><a class="btn btn-lg dropdown-item" href="#">Mango</a></li>
            </ul>
        </div>
    </div>

    ...

    <button type="submit" class="btn btn-primary btn-block btn-lg mt-5">Submit</button>
</form>

views.py

def test_data(request):
    if request.method == 'POST':
        fruit = request.POST.get('fruit-name')
        print(fruit)

        return redirect("test_app:root")

    return render(request, 'test_app/root.html')

jquery代码获取隐藏输入框按钮的值

$(document).ready(function() {
  $('.dropdown-item').click(function() {
    $('.fruit-btn').text($(this).text());
    $('.fruit-btn').val($(this).text());
    $('#fruit-name').val($(this).text());
    console.log($('#fruit-name').val())
  })
})

这是我单击特定水果时 jquery console.log 的输出

Mango

这是我提交表单时来自views.py 的python print(fruit) 的输出

None

我不确定我做错了什么。有什么建议吗?

【问题讨论】:

  • 不会发布,因为它是disabledstackoverflow.com/questions/1355728/…
  • @AminMir 非常感谢。这行得通。当输入为disabled 时,有什么方法可以访问该值。事实上,有没有什么方法可以访问按钮的值而不是隐藏输入?

标签: python jquery django forms django-views


【解决方案1】:

删除隐藏字段的禁用属性。之后,您应该能够在您的视图中获得价值。

【讨论】:

  • 嗨!多谢。这行得通。当输入为disabled 时有什么方法可以访问该值
  • 不提交禁用的输入。因此,您无法在视图中访问它们。阅读stackoverflow.com/questions/1355728/…
  • readonly 属性禁用该字段但不会阻止它被发送。 blog.netgloo.com/2014/05/31/…
  • @AminMir 我认为该评论是针对 Sashaank 的
猜你喜欢
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 2013-08-18
  • 1970-01-01
相关资源
最近更新 更多