Как получить значение скрытого ввода в django просмотров - PullRequest
0 голосов
/ 17 июня 2020

Я работаю над приложением 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

Это результат python print(fruit) от views.py при отправке формы

None

Я не уверен, что делаю неправильно. Есть предложения?

1 Ответ

1 голос
/ 17 июня 2020

Удалить отключенный атрибут в скрытом поле. После этого вы сможете получить ценность своих просмотров.

...