Django 脆皮表格 - 换行符过滤器

Django crispy forms - linebreaks filter

我希望在模板中使用 linebreaks filtercrispy forms,我通常只使用普通形式:

{{ form|linebreaks }}

但是我正在渲染的 crispy_form 使用了模板中的标签:

{% crispy_form %}

如何使用 linebreaks filter

在文档或其他地方什么也没发现后,我设法解决了这个问题。在 view 中,我使用 Layout object and 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 %} 模板标签保留在模板中。