我正在尝试构建一个表单,其中可以从创建表单对象时传入的元组参数初始化选择列表。
我尝试了以下操作,这对于创建表单非常有用。但是当我尝试提交表单时,我得到一个is_valid()= false错误。在下面的示例中,myrooms变量是我想在表单初始化时动态加载的数据。这里有什么帮助?
class SessionInfoForm(forms.ModelForm):
def __init__(self, myrooms = None, *args, **kwargs):
super(SessionInfoForm, self).__init__(*args, **kwargs)
if myrooms != None:
self.fields['room'].choices = myrooms
class Meta:
model = SessionInfo
fields = ["title", "room", "viewer_limit", "starttime", "endtime", "billing_type", "billing_value"]
答案 0 :(得分:1)
在验证结果时,您可能忘记将相同的列表传递给myrooms
。
您必须将两者传递给渲染和验证。
答案 1 :(得分:0)
只需将self.fields['room'].choices = myrooms
更改为self.fields['room'].widget.choices = myrooms
,我已将其编辑到您的问题中