crispy_forms_tag'不是有效的标记库

时间:2014-07-28 08:48:52

标签: django django-crispy-forms

我正在尝试使用Django crispy-forms创建一个Django应用程序。

settings.py

CRISPY_TEMPLATE_PACK = 'bootstrap3'

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'face',    #app name
    'crispy_forms',
)

的index.html

{% extends "base.html" %}
{% load crispy_forms_tag %}

{% block title %}
AuthorizedUser
{% endblock title %}

{% block content %}
    <h1>Quote of the Day</h1>
    <blockquote>{{quote}}</blockquote>
    <p>Or, hit reload if you want a new one...</p>

    <form method="POST" action="{% url  %}"  >
        {% csrf_token %}
        {{ form|crispy}}
        <input type="hidden" name="quote" value="{{quote}}" />
        <input type="hidden" name="access_token" value="{{access_token}}" />
        <input type="submit" value="Set as my status!"/>
    </form>
{% endblock content %}

当我正在运行服务器时,它会引发错误

  

&#34; TemplateSyntaxError at / 'crispy_forms_tag' is not a valid tag library: Template library crispy_forms_tag not found, trieddjango.templatetags.crispy_forms_tag,django.contrib.staticfiles.templatetags.crispy_forms_tag,django_facebook.templatetags.crispy_forms_tag,crispy_forms.templatetags.crispy_forms_tag&#34;

我做错了什么?以及如何解决它?

3 个答案:

答案 0 :(得分:2)

您确定Crispy表单的安装有效吗?你需要安装django-crispy-forms。

然后,在您的模板index.html中,您应该使用crispy标签,如下所示:

{% crispy name_form %} 

而不是:

{{form|crispy}}

更重要的是,你应该使用

{% load crispy_forms_tags %}

不,

{% load crispy_forms_tag %}

答案 1 :(得分:2)

您应该在项目设置中添加Crispy Form标签。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
]

在templates.html中添加这些清晰标记

    {% load crispy_forms_tags %}
      {% csrf_token %}
    {% crispy form %}

答案 2 :(得分:1)

我刚刚经历了这个错误。

忘记了install django-crispy-forms

pip install django-crispy-forms

并在settings.py

中引用它
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
]

完成后,问题就解决了。