渲染脆形

时间:2016-09-16 09:08:27

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

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

  

/ forum / newpost / pqs53kqsbgsqd66pg0i60u-isjtvagbo4ii4q9 /

中的TemplateSyntaxError      

crispy tag的template_pack参数应该在(' bootstrap',' uni_form',' bootstrap3',' foundation-5&# 39)

设置文件包含以下条目(其中包括):

  • 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 )。

1 个答案:

答案 0 :(得分:0)

您需要将semantic-ui添加到设置文件中的CRISPY_ALLOWED_TEMPLATE_PACKS

CRISPY_ALLOWED_TEMPLATE_PACKS = ('bootstrap', 'uni_form', 'bootstrap3', 'bootstrap4', 'semantic-ui')
相关问题