Мучаюсь с этим уже два часа и не понимаю как передать список в форму, чтобы id было значением option value, а name названием пункта в выпадающем меню.
Код forms.py:
from django import forms
from .models import Names
class SearchNamesForm(forms.Form):
def __init__(self, *args, **kwargs):
super(SearchNamesForm, self).__init__(*args, **kwargs)
self.fields['selectName'].empty_label = "..."
self.fields['selectName'].widget.attrs['class'] = 'searchform-main__select'
self.fields['selectName'].queryset = Names.objects.all().values_list('id', 'name')
selectName = forms.ModelChoiceField(
required=False,
widget=forms.Select,
queryset=Names.objects.none()
)
Сейчас он возвращает мне:
<option value="(1, 'Вася)">(1, 'Вася)</option>
<option value="(2, 'Петя)">(2, 'Петя)</option>
И ставит их как в option=value так и в его имя.
Перед этим намучался с queryset и значением по умолчанию empty_label, но вроде сейчас работает, и хочу понять как расставить кортеж на свои места
<option value="1">Вася</option>
<option value="2">Петя</option>
В шаблоне вывожу сразу форму {{ form }}