【发布时间】:2019-11-22 23:57:36
【问题描述】:
我在 django 中使用向导表单。仅当对其他表单字段的回答标记为“是”时,我才想创建一个表单字段,否则我不想要这个新的表单字段。我该怎么做?
我已经尝试了一些与此相关的其他答案,但其中大多数都讲述了如何标记字段是否必填,但我只想在其他字段的答案为“是”时才显示该字段
Django Form Wizard with Conditional Questions
在下面的代码中,我只想在对字段“Pool”的回答标记为“是”时才显示字段“Pool2”,否则我不想要该字段。如果用户家中有游泳池,基本上我想在“Pool2”字段中获取一些游泳池的详细信息。
forms.py
class ListingForm2(forms.Form):
Pool = (
("Yes","Yes"),
("No","No"),
)
Pool = forms.ChoiceField(choices = Pool,label = "Does your property have a pool ?")
Pool2 = forms.CharField(required=False)
Views.py
class ListingWizard(SessionWizardView):
template_name = 'listing_form.html'
form_list = [ListingForm1,ListingForm2,ListingForm3,ListingForm4]
def done(self, form_list, **kwargs):
save_data(form.cleaned_data for form in form_list)
return render(self.request,'done.html',{
'form_data' : [form.cleaned_data for form in form_list],
})
【问题讨论】:
-
使用 javascript 显示和隐藏字段,更改选择字段。
-
除了使用javascript别无他法?@Shubhitgarg
-
由于您希望在客户端进行一些更改,因此此处需要 javascript 或 css
-
好的谢谢@PRMoureu
标签: python django python-3.x forms django-formwizard