【发布时间】:2010-12-17 00:54:01
【问题描述】:
在我的 Django 应用程序中,我有一个带有 ChoiceField 的表单,通常允许在一系列整数值之间进行选择。
class FormNumber(forms.Form):
list=[]
for i in range(1, 11):
list.append((i,i))
number=forms.ChoiceField(choices=list, initial=1)
现在我需要在某些情况下覆盖视图方法中的默认选择列表,使用较小的范围,但尝试以这种方式进行
n=10-len(request.session["items"])
if n>0:
list=[]
for i in range(1, n+1):
list.append((i,i))
form=FormNumber(choices={'number':list}, initial={'number':1})
我得到一个 TypeError - __ init__() 得到了一个意外的关键字参数“选择”。我也尝试从表单类中删除参数,但得到相同的结果。
有没有办法以类似于上面的方式从视图中使用新的选择列表来初始化 ChoiceField? 在此先感谢:)
【问题讨论】:
标签: django django-forms django-views choicefield