Django Display ID и Description из формы Queryset в выпадающий список

Я хочу отобразить данные из таблицы в Django Queryset Form с правильным отображением значения и текста выпадающего элемента управления.

Кодирование в форме:

self.fields['testing_field'].queryset = model_abc.objects.all().values_list('description', flat=True)

Описание результата также является значением:

<select name="cars" id="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

Result expection может установить id как значение с существующим описанием:

<select name="cars" id="cars">
  <option value="1">Volvo</option>
  <option value="2">Saab</option>
  <option value="3">Mercedes</option>
  <option value="4">Audi</option>
</select>

Как установить id в качестве значения в выпадающей форме Django QuerySet?

Вам нужно получить как описание, так и пк объектов. это достаточно просто:

 possibles = model_abc.objects.all().values_list('pk', 'description')

Вы можете преобразовать это в динамический выбор:

 choices = ( (x['pk'], x['description']) for x in possibles )

Или вы можете перебирать возможные варианты в вашем шаблоне

 {% for option in possibles %}
     <option value="{{option.pk}}">{{option.description}}</option>
 {% endfor %}
Вернуться на верх