Django Форма ChoiceField как показать больше названий полей

У меня есть "маленькая" проблема. Я хочу получить ВСЕ поле ModelChoiced и не знаю, как это сделать.

Мои части кода

models.py

class Materials(models.Model):
    material = models.CharField(max_length=20,unique=True)
    density = models.PositiveSmallIntegerField()
    price = models.PositiveSmallIntegerField()

    def __str__(self):
        return self.material

class Items(models.Model):
   article_number = models.CharField(max_length=20,blank=True,null=True)
   quantity = models.PositiveSmallIntegerField(blank=True,null=True)
   material = models.ForeignKey('Materials',on_delete=models.PROTECT,blank=True,null=True)
   surface =models.CharField(max_length=20,blank=True,null=True)
   .
   .
   .

forms.py

class ItemsForm(forms.ModelForm):
    class Meta:
        model = models.Items
        fields = "__all__"

views.py

def new(request):
   items_form = forms.ItemsForm()
   context = {
      'items_form':items_form,
   }
   return render(request,"new.html",context)

new.html

{{ items_form.article_number }}
{{ items_form.quantity }}
{{ items_form.material }}
{{ items_form.surface}}
.
.
.

Теперь, при открытии ссылки, сгенерированный код html материала имеет вид

<select name="material" id="id_material">
   <option value selected>---------</option>
   <option value="id_1">"material_1"</option>
   <option value="id_2">"material_2"</option>
   <option value="id_3">"material_3"</option>
</select>

Я хочу представить все значения поля Materials на каждом входе, как это:

<select name="material" id="id_material">
   <option value selected>---------</option>
   <option value="id_1">"material_1"</option>
   <option value="id_2">"material_2"</option>
   <option value="id_3">"material_3"</option>
</select>

<select name="density" id="id_density">
   <option value selected>---------</option>
   <option value="id_1">"density_1"</option>
   <option value="id_2">"density_2"</option>
   <option value="id_3">"density_3"</option>
</select>

<select name="price" id="id_price">
   <option value selected>---------</option>
   <option value="id_1">"price_1"</option>
   <option value="id_2">"price_2"</option>
   <option value="id_3">"price_3"</option>
</select>

Я попробовал добавить эти строки в ItemsForm, но этот метод не получает 'id', только значения:

    def __init__(self, *args, **kwargs):
        super(ItemsForm, self).__init__(*args, **kwargs)
        self.fields['density'] = forms.ModelChoiceField(queryset=models.Materials.objects.values_list('density',flat=True))
Вернуться на верх