脆弱的表单:有没有办法使用脆弱的表单来呈现完全只读的表单视图?

时间:2014-10-23 12:21:18

标签: django forms django-crispy-forms

几周前我开始使用django,python和django-crispy-forms。我花了很多时间找到一种方法来重用表单布局来呈现一个完全只读的视图。

考虑到DRY原则,渲染一个酥脆的表单并用手写相同的布局只是为了显示用户输入,例如,在确认向导步骤中,或作为简单的详细视图,没有多大意义。 / p>

有没有办法做到这一点,用<input><span>元素替换所有<p>元素?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你的意思是什么? :

class CommonFormHelper(FormHelper):
    def __init__(self):
        super(CommonFormHelper, self).__init__()
        self.disable_csrf = True
        self.form_tag = False


class CommonModelFormWithHelper(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CommonModelFormWithHelper, self).__init__(*args, **kwargs)

        self.base_fields['some_field'].widget = forms.CheckboxInput(attrs={'disabled': True})
        self.helper = CommonFormHelper()
        self.helper.form_show_labels = False
        self.helper.layout = Layout(
            Field('some_field')
        )


class HumanSignForm(CommonModelFormWithHelper):
    class Meta:
        model = HumanSign


class HumanDescriptionForm(CommonModelFormWithHelper):
    class Meta:
        model = HumanDescription