Django Forms:如何使用现有模型中的值在表单中创建一个简单的下拉列表

Django Forms: How to create a simple dropdown list in a form using values from an existing model

我是 Django 的新手,正在努力寻找 best/correct 方法来使用我存储在数据库中的列表在表单内的 ModelChoiceField 中填充下拉列表。 下面的基本代码在我的视图中工作正常,将表单作为上下文传递给我的模板,但是下拉列表 returns 是一个 'dictionary' 类似的列表,其中包含丑陋的内容或方括号、冒号和键名(请参阅附件)

from django import forms
from .models import constituency

class ConstituencyForm(forms.Form):
    ConstituencySelection = forms.ModelChoiceField(queryset=constituency.objects.all().values('name'))

我的问题是:

1/ 此页面的目的是 select 下拉列表中的 650 个区域之一,并在地图上突出显示。这是处理任务的合适方法吗(在表单本身中使用查询集)?

2/ 我如何清理这个列表,它应该简单地写成:-

  Aldershot

  Aldridge-Brownhills

  Altrincham and Sale West

等等等等

我们将永远感谢您的帮助!

谢谢,

Phil #anoobinneed

使用 values_list()flat=True 即可。

变化:

queryset=constituency.objects.all().values('name')

收件人:

queryset=constituency.objects.all().values_list('name', flat=True)