Python 从列表到django中的选择菜单
我以为我已经弄明白了,但现在我错过了一些东西 首先我有一个查询集,记录Python 从列表到django中的选择菜单,python,django,Python,Django,我以为我已经弄明白了,但现在我错过了一些东西 首先我有一个查询集,记录 records = Record.objects.all() 现在我想把它做成一个表中一列的列表columnA alist = records.values_list('columnA') 然后我想把这个列表作为参数传递给自定义表单 FilterForm(alist) 这是我的表格 class FilterForm(forms.Form,list): numbers = forms.ChoiceField(li
records = Record.objects.all()
现在我想把它做成一个表中一列的列表columnA
alist = records.values_list('columnA')
然后我想把这个列表作为参数传递给自定义表单
FilterForm(alist)
这是我的表格
class FilterForm(forms.Form,list):
numbers = forms.ChoiceField(list)
但不断出现“type”对象不可编辑的错误。我不确定问题是否与传递列表有关,因为当我尝试在shell中运行此代码时,在导入FilterForm时会收到错误消息
编辑:我更改了FilterPerform,所以现在看起来像这样
class FilterForm(forms.Form):
def __init__(self,numbers):
number = forms.ChoiceField(numbers)
所以现在我想我要做的是,把一个列表传递给FilterPerform。但是,当我呈现模板并传递表单时,不会显示任何表单字段。但没有错误消息
编辑:也试过了,在网上看到了
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
问题在于此行中的单词
list
:
numbers = forms.ChoiceField(list)
您需要向ChoiceField提供特定列表。这里有一个错误:
class FilterForm(forms.Form,list):
numbers = forms.ChoiceField(list)
您使FilterForm
成为表单的子类。表单和列表;然后您希望列表
可以作为选项字段
的参数使用
我想您正在寻找动态精选字段
进一步阅读:
啊,python不是java……我要做的是让类将列表作为参数。我想这不是名单。在java中,我会使用构造函数filtermber(列表l)或其他东西,但在python中这有什么不同