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)
我是 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)