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)

希望对您有所帮助!