是否可以自定义为django.forms.Form生成的HTML?

时间:2011-11-15 10:57:39

标签: html django

目标:我的表单向导Form中的第一个WizardView会传递一个初始值,该值将更改生成的HTML中显示的字段。

我可以在jQuery的帮助下修改输出(可能通过自定义模板)来隐藏某些字段吗?

1 个答案:

答案 0 :(得分:2)

您可以通过在表单'Media'内部类

中包含javascript文件来使用javascript更改表单
class MyForm(form.ModelForm):
    ...

    class Media:
        # Paths relative to STATIC_URL
        js = ("js/file.js", "js/file2.js",)

但是,在我看来,这可能有点hacky

或者,要更改特定字段的HTML,您应该为要编辑的特定字段创建自己的窗口小部件:

https://docs.djangoproject.com/en/dev/ref/forms/widgets/

最后,如果您需要动态添加或删除字段,我认为您可以采用的最佳方式是 init 功能:

class MyForm(form.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        if self.fields['example_field_name'].initial == "some_value":
            # do something ...