首页 > 解决方案 > 显示名称而不是 id

问题描述

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

我的问题是:

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

表格.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>

标签: djangodjango-forms

解决方案


forms.py

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

在你的models.py

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

推荐阅读