Django Выпадающие данные опции GET

Я хотел получить выбранный текст из выпадающего списка, но я получаю значение, если использую request.GET['Type']. Я хотел получить Data001 вместо Value001

def index(request):
    print("The output: ",request.POST.get('Type'))
    return render(request,'index.html',content)
<div class="form-row last">
    <div class="form-wrapper">
        <label for="">Meeting Type</label>
        <select id="Type" name="Type" class='form-control'>
            <option disabled="disabled" selected="selected">Choose option</option>
            <option value='Value001'>Data001</option>
        </select>
    </div>
</div>
<div class="form-wrapper">
    <button data-text="Book" type="submit" name="action" value="book">
        <span>Book</span>
    </button>
</div>

Пожалуйста, обратите внимание, что есть 30+ выпадающих опций и я должен использовать значения в выпадающем списке. Пожалуйста, помогите мне получить выбранный вариант вместо значения

Итак, если это используется для целей фильтрации и вы не можете изменять значения внутри тегов option. Тогда вы можете использовать AJAX, вы можете получить .innerHTML выбранного варианта, и передать это как dict в вашу views.py функцию

views.py

def ajax_option(request):
    print("The output: ",request.POST.get('Type'))
    return render(request,'ajax_option.html')

urls.py

path('ajax_option/', views.ajax_option, name="ajax_option"),

.html

<div class="form-row last">
        <div class="form-wrapper">
            <label for="">Meeting Type</label>
            <select name="Type" class='form-control' onchange="onchangehit(this.options[this.selectedIndex].text)">
                <option disabled="disabled" selected="selected">Choose option</option>
                <option value='Value001'>Data001</option>
                <option value='Value002'>Data002</option>
            </select>
        </div>
    </div>
    <div class="form-wrapper">
        <button data-text="Book" type="submit" name="action" value="book">
            <span>Book</span>
        </button>
    </div>

AJAX, прямо над тегом body

<script type="text/javascript">
            function onchangehit(data) {
                console.log(data);
                $.ajax({
                    type: "POST",
                    url: "{% url 'ajax_option' %}",
                    async: true,
                    data: {
                        Type: data,
                        csrfmiddlewaretoken: '{{ csrf_token }}',
                    },
                    success: function () {},
                    failure: function () {}
                });
            }
        </script>

добавьте новый тег input со скрытым типом. добавьте слушатель события onchange на select с идентификатором "Type". в функции обратного вызова слушателя события замените значение тега input на внутренний текст измененного значения в select

таким образом, вы можете использовать его без ajax a

Вернуться на верх