【问题标题】:Template syntax error when rendering crispy-form渲染crispy-form时模板语法错误
【发布时间】:2017-01-24 10:55:16
【问题描述】:

我使用 semantic-ui 作为 crispy-forms 的模板。尝试加载页面时会导致以下错误:

/forum/newpost/pqs53kqsbgsqd66pg0i60u-isjtvagbo4ii4q9/处的模板语法错误

crispy 标签的 template_pack 参数应该在 ('bootstrap', 'uni_form', 'bootstrap3', 'foundation-5')

设置文件包含以下条目(以及其他):

  • CRISPY_TEMPLATE_PACK = 'semantic-ui'
  • INSTALLED_APPS = ('crispy_forms', 'semantic_ui')

这是来自 forumpost_create.html 的模板代码:

{% extends 'forum/layouts/forum_main.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="ui main text container">
  <form action="" method="post" class="ui form">
    {% csrf_token %}
    {% crispy form %}
    <input type="submit" value="Save" />
  </form>
</div>
{% endblock %}

当我在 模板 中使用 form|crispy 时,错误消失了,但随后模板渲染不受影响,即使查看输出 HTML 源代码,也没有任何变化。

来自 forms.py

的代码
class ForumPostForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ForumPostForm, self).__init__(*args, **kwargs)

        self.helper = FormHelper(self)
        self.helper.layout = Layout(
            Fieldset(
                'Post body',
                'body'
            ),
            ButtonHolder(
                Submit('submit', 'Submit', css_class='ui primary button')
            )
        )

    class Meta:
        model = ForumPost
        fields = ['body']

如何使它工作?是因为我使用的是 semantic-ui 并且需要做一些不同的事情吗? (我遇到的大多数教程都喜欢 bootstrap)。

【问题讨论】:

  • 我认为这个问题是由于脆表单的内部验证。尝试使用github.com/alexey-grom/crispy-semantic-ui
  • 这正是我安装crispy时所遵循的页面。
  • 你在INSTALLED_APPS中添加了'semantic-ui'吗?
  • 是的,我在最初的帖子中提到过。

标签: django django-forms django-crispy-forms


【解决方案1】:

你需要在设置文件的CRISPY_ALLOWED_TEMPLATE_PACKS中添加semantic-ui

CRISPY_ALLOWED_TEMPLATE_PACKS = ('bootstrap', 'uni_form', 'bootstrap3', 'bootstrap4', 'semantic-ui')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多