我希望在模板中使用linebreaks filter
和crispy forms
,我通常会使用普通表单:
{{ form|linebreaks }}
然而,{I}渲染的crispy_form
使用模板中的标记:
{% crispy_form %}
如何使用linebreaks filter
?
答案 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 %}
模板标记保留在模板中。