Django隐藏输入域问题
Django hidden input field problems
我有以下模型表单,我必须在其中添加一个隐藏字段。
class AddEditGroupForm(forms.ModelForm):
id_sel_comp = forms.CharField(
label='selected company',
initial=0,
required=True,
widget=forms.HiddenInput(attrs={'id': 'id_sel_comp'})
)
class Meta:
model = Group
fields = ('name', 'id_sel_comp')
def __init__(self, *args, **kwargs):
super(AddEditGroupForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs.update({'class': 'form-control m-input form-control-sm'})
def as_two_col_layout(self):
return self._html_output(
normal_row='<div class="form-group m-form__group row"><label class="col-sm-3 col-form-label">%(label)s</label><div class="col-sm-9">%(field)s%(help_text)s</div></div>',
error_row='%s',
row_ender='',
help_text_html=' <span class="m-form__help">%s</span>',
errors_on_separate_row=True)
表单只显示隐藏的表单域,不显示'name'字符域。当我将字段 'id_sel_comp' 标记为未隐藏时,将显示所有字段。这有什么问题?
表单在模板中呈现为:
{{ form.as_two_col_layout }}
您没有正确指定 row_ender
。您当前将其设置为 '',这与您指定的 normal_row
不正确。你的 row_ender
在你的情况下是 </div></div>
。所以你的 as_two_col_layout
变成了,
def as_two_col_layout(self):
return self._html_output(
normal_row='<div class="form-group m-form__group row">'
'<label class="col-sm-3 col-form-label">%(label)s</label>'
'<div class="col-sm-9">%(field)s%(help_text)s</div></div>',
error_row='%s',
row_ender='</div></div>',
help_text_html=' <span class="m-form__help">%s</span>',
errors_on_separate_row=True)
希望对您有所帮助!
我有以下模型表单,我必须在其中添加一个隐藏字段。
class AddEditGroupForm(forms.ModelForm):
id_sel_comp = forms.CharField(
label='selected company',
initial=0,
required=True,
widget=forms.HiddenInput(attrs={'id': 'id_sel_comp'})
)
class Meta:
model = Group
fields = ('name', 'id_sel_comp')
def __init__(self, *args, **kwargs):
super(AddEditGroupForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs.update({'class': 'form-control m-input form-control-sm'})
def as_two_col_layout(self):
return self._html_output(
normal_row='<div class="form-group m-form__group row"><label class="col-sm-3 col-form-label">%(label)s</label><div class="col-sm-9">%(field)s%(help_text)s</div></div>',
error_row='%s',
row_ender='',
help_text_html=' <span class="m-form__help">%s</span>',
errors_on_separate_row=True)
表单只显示隐藏的表单域,不显示'name'字符域。当我将字段 'id_sel_comp' 标记为未隐藏时,将显示所有字段。这有什么问题? 表单在模板中呈现为:
{{ form.as_two_col_layout }}
您没有正确指定 row_ender
。您当前将其设置为 '',这与您指定的 normal_row
不正确。你的 row_ender
在你的情况下是 </div></div>
。所以你的 as_two_col_layout
变成了,
def as_two_col_layout(self):
return self._html_output(
normal_row='<div class="form-group m-form__group row">'
'<label class="col-sm-3 col-form-label">%(label)s</label>'
'<div class="col-sm-9">%(field)s%(help_text)s</div></div>',
error_row='%s',
row_ender='</div></div>',
help_text_html=' <span class="m-form__help">%s</span>',
errors_on_separate_row=True)
希望对您有所帮助!