【发布时间】:2010-09-11 22:29:44
【问题描述】:
我以为我已经弄清楚了,但现在我错过了一些东西。
首先我有一个查询集,记录
records = Record.objects.all()
现在我想把它变成表格的列之一的列表,columnA
alist = records.values_list('columnA')
然后我想将此列表作为参数传递给自定义表单。
FilterForm(alist)
这是我的表格
class FilterForm(forms.Form,list):
numbers = forms.ChoiceField(list)
但不断收到“类型”对象不可迭代的错误。我不确定问题是否与列表的传递有关,因为当我尝试在 shell 中运行此代码时,我在导入 FilterForm 时收到错误消息
编辑:我更改了我的 FilterForm,所以现在看起来像这样。
class FilterForm(forms.Form):
def __init__(self,numbers):
number = forms.ChoiceField(numbers)
所以现在我认为我正在尝试做的事情更明显,将列表传递给 FilterForm。但是,当我渲染模板并传递表单时,没有显示表单字段。虽然没有错误消息
编辑编辑:也试过这个,在网上看到的
class FilterForm(forms.Form):
number = forms.ChoiceField()
def __init__(self,numbers):
super(FilterForm,self).__init__()
self.fields['number'].choices=numbers
但错误:
Exception Type: TemplateSyntaxError
Exception Value:
Caught ValueError while rendering: need more than 1 value to unpack
【问题讨论】: