【问题标题】:How to display a Form in Django (CBV)如何在 Django (CBV) 中显示表单
【发布时间】:2013-12-31 08:47:40
【问题描述】:

我想在我的 Django 网站中显示一个表单

forms.py:

from django import forms

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

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

【问题讨论】:

标签: django django-forms


【解决方案1】:

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

但它可以用 Django 来完成。

您可以覆盖表单初始化方法中显示的字段。并在那里工作您的其他条件逻辑。

只需检查表单是否已绑定以及复选框数据是否在绑定数据中可用,然后通过设置小部件属性或将小部件设置为 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 刷新表单内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 2019-03-10
    • 2021-07-25
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    相关资源
    最近更新 更多