【发布时间】:2020-06-02 22:49:59
【问题描述】:
我想定义一个带有两个静态定义字段(name 和description)和一个动态定义字段(enum_value)的 Django 脆表单。我是这样做的:
class DataTypeForm(forms.Form):
name = forms.CharField()
description = forms.CharField(widget=forms.Textarea)
def __init__(self, *args, **kwargs):
self.mode = kwargs.pop('mode')
super(DataTypeForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.wrapper_class = 'row'
self.helper.label_class = 'col-md-2'
self.helper.field_class = 'col-md-8'
self.helper.add_input(Submit('submit', 'Submit'))
self.fields['enum_value'] = forms.CharField()
动态字段enum_value 在最后一行定义。不幸的是,这并没有按预期工作:表单使用两个静态字段(name 和 description)呈现,但动态字段 enum_value 不可见。问题似乎在于FormHelper 类的使用。如果我将示例修改如下:
class DataTypeForm(forms.Form):
name = forms.CharField()
description = forms.CharField(widget=forms.Textarea)
def __init__(self, *args, **kwargs):
self.mode = kwargs.pop('mode')
super(DataTypeForm, self).__init__(*args, **kwargs)
# self.helper = FormHelper(self)
# self.helper.wrapper_class = 'row'
# self.helper.label_class = 'col-md-2'
# self.helper.field_class = 'col-md-8'
# self.helper.add_input(Submit('submit', 'Submit'))
self.fields['enum_value'] = forms.CharField()
然后,事情按预期工作,我的表单中的所有三个字段都正确呈现。即使使用FormHelper 类,有什么方法可以正确呈现动态定义的字段吗?
【问题讨论】:
标签: django-forms django-crispy-forms