如何在Django(CBV)中显示表单

时间:2013-12-31 08:47:40

标签: django django-forms

我想在我的Django-Website

中显示一个表单

forms.py:

from django import forms

MyForm(forms.Form):
    price = forms.IntegerField()
    checkbox = forms.BooleanField()
    humidity = forms.IntegerField()
    weight = forms.IntegerField()
    amount = forms.IntegerField()

但我不想显示孔形式。 如果选中该复选框,我想显示“湿度”和“重量”,否则我只显示“数量”。

1 个答案:

答案 0 :(得分:0)

这可能是用javascript完成的,也可能不是。

但是可以用Django完成。

您可以覆盖表单init方法中显示的字段。并在那里处理你的其他条件逻辑。

只需检查表单是否绑定以及绑定数据中是否有复选框数据,然后通过设置窗口小部件属性或将窗口小部件设置为HiddenInput来手动检查/修改字段可见性。

类似问题的例子:

Conditional field in form

django: exclude certain form elements based on a condition

http://codeinthehole.com/writing/conditional-logic-in-django-forms/

现在,如果您应该在Django或浏览器中使用脚本执行 - 这完全取决于您,但是虽然使用javascript可能更容易,但您必须考虑必须具有与浏览器端逻辑相匹配的验证。出于这个原因,我总是选择在django端执行此操作,只需使用javascript刷新表单内容,当字段值更改时应触发表单内容更改。