我使用 init 方法在表单中创建ChoiceField,以便调用另一个填充字段选项的函数。现在,当用户选择下拉列表并提交表单时,我无法使用请求成功创建表单,而我认为“bound = False”使表单无效。有没有办法使用 init 方法创建表单字段,同时在 request.POST 中传递表单时有效?提前致谢。
Forms.py
<ul>
<li><img /></li> <!--first image-->
<li><img /></li>
<li><img /></li>
</ul>
<ul>
<li><img /></li> <!--first image-->
<li><img /></li>
<li><img /></li>
</ul>
<ul>
<li><img /></li> <!--first image-->
<li><img /></li>
<li><img /></li>
</ul>
<ul>
<li><img /></li> <!--first image-->
<li><img /></li>
<li><img /></li>
</ul>
...
View.py:处理已提交表单
的方法class CoursesForm(forms.Form):
def __init__(self, subject, *args, **kwargs):
super(CoursesForm, self).__init__(*args, **kwargs)
self.fields['course'] = forms.ChoiceField(choices=get_uw_courses_from_subject(subject), required=False)
答案 0 :(得分:0)
因为您已覆盖方法签名,因此第一个位置参数为@ EqV¡^MSÁ9
,而不是subject
。 不要那样做。
data
另外,不要忘记实际传递主题论点:
def __init__(self, *args, **kwargs):
subject = kwargs.pop('subject', None)
...