Использование тега <select> в шаблоне django для передачи данных в представление

Я новичок в Django и изучаю формы, шаблоны и представления, создавая простое веб-приложение.

В настоящее время у меня есть представление, которое генерирует данные, как показано ниже, и передает их в шаблон, используя контекстный словарь. Эти данные принимаются шаблоном и согласовываются с тегом <select>

views.py

my_dictionary = {0: {'title': 'Beyond the Soul', 'id': '2Uy66My5oKcBEIW7DvVk3V'},
1: {'title': 'The Groove Cartel Selection', 'id': '1pHtICGI68RmWEKnnP5wGr'},
2: {'title':
 'STMPD RCRDS TOP 50', 'id': '1OIzwJTbrOeZTHvUXf5yMg'},
3: {'title': 'House Party by Axwell', 'id': '1tl4L77FJju5zp9bJC83u8'}}

return render(request, 'show_playlist.html', {"my_dictionary": my_dictionary})

шаблон

<select class="form-select" aria-label="Default select example">
  <option selected>Choose the element</option>
        {% for key, value in my_dictionary.items %}
  <option value="{{value.id}}">{{value.title}}</option>
        {% endfor %}

</select>

Очевидно, что форма select ничего не делает. Мне интересно, как лучше всего после выбора элемента перенаправить на новый шаблон/вид, передавая фактический выбор (так {{value.id}} и {{value.title}}).

Нужно ли мне использовать форму Django или я могу использовать какое-то перенаправление на select, например <a href="{% url 'redirect_url' %}">?

Следуйте способу Django для управления этим с помощью списка кортежей, где первый элемент - это id, а второй - текст

так будет вид

my_dictionary = [('2Uy66My5oKcBEIW7DvVk3V','Beyond the Soul'),
                 ('1pHtICGI68RmWEKnnP5wGr','The Groove Cartel Selection')
                    .....
                ]

return render(request, 'show_playlist.html', {"my_dictionary": my_dictionary})

тогда шаблон должен быть

<select class="form-select" aria-label="Default select example">
    <option selected>Choose the element</option>
       {% for item in my_dictionary %}
            <option value="{{item.0}}">{{item.1}}</option>
    {% endfor %}

   </select>

Вы можете сделать это, просто выводя опции single peace os из кода, используя представление, просто вызывая ajax. здесь есть пример в simpleisbetterthancomplex, перейдите по ссылке:

https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html

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