显示名称而不是ID

时间:2018-12-14 09:32:32

标签: django django-forms

我创建了一个带有选择字段调用membersid的表单,该表单将在选项中显示名称。

我的问题是:

如何显示对象的name,但value显示对象的id

forms.py

membersid = forms.ModelChoiceField(queryset=Member.objects.values_list('id',flat=True),required=True)

我已经尝试过了,但是得到的值和显示名称是id。

我已经检查了代码,选项列表如下:

<select name="membersid" class="select form-control" required="" id="id_membersid"> 
    <option value="" selected="">---------</option> 
    <option value="15">15</option> 
    <option value="16">16</option>
    <option value="17">17</option> 
    <option value="21">21</option> 
    <option value="82">82</option>
</select>

我的期望选项列表:

<select name="membersid" class="select form-control" required="" id="id_membersid"> 
        <option value="" selected="">---------</option> 
        <option value="15">ABC</option> 
        <option value="16">DEF</option>
        <option value="17">GHI</option> 
        <option value="21">JKL</option> 
        <option value="82">MNO</option>
    </select>

1 个答案:

答案 0 :(得分:3)

forms.py

membersid = forms.ModelChoiceField(queryset=Member.objects.all(), required=True)

在您的models.py中:

class Member(models.Model):
   ...
   def __str__(self):
       return self.name