Django脆皮形式 - 换行符过滤器

时间:2015-03-04 11:25:47

标签: python django django-crispy-forms

我希望在模板中使用linebreaks filtercrispy forms,我通常会使用普通表单:

{{ form|linebreaks }}

然而,{I}渲染的crispy_form使用模板中的标记:

{% crispy_form %}

如何使用linebreaks filter

1 个答案:

答案 0 :(得分:0)

在文档或其他地方发现任何内容后,我设法解决了这个问题。在view中,我使用Layout对象和django.template.defaultfilters.linebreaks_filter将纯文本中的linebreaks替换为HTML等效对象。例如:

from django.template.defaultfilters import linebreaks_filter
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit

class ExampleForm(forms.Form):
[...]
def __init__(self, *args, **kwargs):
    self.helper = FormHelper()
    self.helper.form_method = 'post'
    self.helper.add_input(Submit('submit', 'Submit'))
    self.helper.layout = Layout(
        HTML('<p>{}</p>'.format(
            linebreaks_filter(some_text_with_line_breaks)
        )
    )
    super(ExampleForm, self).__init__(*args, **kwargs)

{% crispy_form %}模板标记保留在模板中。