我想在我的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()
但我不想显示孔形式。 如果选中该复选框,我想显示“湿度”和“重量”,否则我只显示“数量”。
答案 0 :(得分:0)
这可能是用javascript完成的,也可能不是。
但是可以用Django完成。
您可以覆盖表单init方法中显示的字段。并在那里处理你的其他条件逻辑。
只需检查表单是否绑定以及绑定数据中是否有复选框数据,然后通过设置窗口小部件属性或将窗口小部件设置为HiddenInput来手动检查/修改字段可见性。
类似问题的例子:
django: exclude certain form elements based on a condition
http://codeinthehole.com/writing/conditional-logic-in-django-forms/
现在,如果您应该在Django或浏览器中使用脚本执行 - 这完全取决于您,但是虽然使用javascript可能更容易,但您必须考虑必须具有与浏览器端逻辑相匹配的验证。出于这个原因,我总是选择在django端执行此操作,只需使用javascript刷新表单内容,当字段值更改时应触发表单内容更改。