0 Вопрос: Как сделать форму как выпадающее меню

вопрос создан в Thu, May 2, 2019 12:00 AM

В Django я не могу получить форму для отображения на html-странице, несмотря на несколько попыток решения. Цель состоит в том, чтобы создать простое выпадающее меню из содержимого базы данных.

Я пробовал несколько решений, упомянутых в нескольких постах, но ни одно из них не сработало

models.py

class Set(models.Model):
  cruise = models.IntegerField(verbose_name=_("cruise"))
  set = models.IntegerField(verbose_name=_("set"))

  def __str__(self):
        return self.name
forms.py
class SetChoiceField(forms.Form):

    set = forms.ModelChoiceField(
        queryset = Set.objects.values_list("set_number", 
flat=True).distinct(),
        empty_label = None
    )
views.py
def index(request):
    query_results = Set.objects.all()
    set_list = SetChoiceField()

    context = {
        'query_results': query_results,
        'set_list': set_list,

    }
    return render(request,'base.html', context)
base.html
<h2>Set drop down menu</h2>
<form method="post" novalidate>
  {% csrf_token %}
  <table>
    {{ set_list.as_table }}
  </table>
  <button type="submit">Save</button>
</form>

Ожидаемый результат - это выпадающее меню со списком всех наборов, содержащихся в базе данных (1-20).

    
0
  1. что такое set_number в вашем values_list? Это не поле Set, так что это не может работать. Также ваш queryset на ModelChoiceField должен возвращать объекты, а не список значений. Так что просто удалите все это values_list. Но когда вы говорите «это не работает», будьте более точны. Что именно вы видите (ошибка, неправильный вывод и т. Д.), Это не то, что вы ожидали.
    2019-05-02 15: 29: 29Z
0 ответов                              0                         
источник размещен Вот