首页 > 解决方案 > 如何在 OPTION 和 VALUE OPTION e 选择中使用具有相同值的列表中的 ModelChoiceField?

问题描述

如何在 OPTION 和 VALUE OPTION e 选择中使用具有相同值的列表中的 ModelChoiceField?

我需要queryset返回来为选项的列表和VALUE选择相同的值

模型

class Produto(models.Model):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

    nome = models.CharField(max_length=255)
    referencia = models.CharField(max_length=50)

    def __str__(self):
        return self.nome + ' - ' + self.referencia

形式

class FormItem(forms.Form):

        produto = forms.ModelChoiceField(queryset=None, label='Produto', widget=forms.Select(attrs={'placeholder': 'Produto', 'class': 'input select2'}))

        def __init__(self, *args, **kwargs):
            super(FormFaturaItem, self).__init__(*args, **kwargs)
            self.fields['produto'].queryset = Produto.objects.all()

表格结果

<select>
<option value="dd3e2aff-924d-4945-9929-3d37b81b3ebb">KIT MATERNIDADE  - 9049</option>
</select>

预期结果

 <select>
    <option value="KIT MATERNIDADE  - 9049">KIT MATERNIDADE  - 9049</option>
    </select>

标签: pythondjangopython-3.xdjango-forms

解决方案


produto = forms.ChoiceField(choices=(), label='Produto', widget=forms.Select(attrs={'placeholder': 'Produto', 'class': 'input select2'}))

def __init__(self, *args, **kwargs):
    super(FormItem, self).__init__(*args, **kwargs)

    a = []
    for i in Produto.objects.all():
        a.append((i.nome, i.nome))

    self.fields['produto'].choices = tuple(a)

推荐阅读