提问者:小点点

如何在django视图中获取隐藏输入的值


我正在开发一个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())
  })
})

这是当我单击特定水果时jqueryconsole.log的输出

Mango

这是当我提交表单时,来自views.py的pythonprint(fruit)的输出

None

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


共1个答案

匿名用户

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