"crispy_forms_tag" 不是一个有效的标签库。

9
我正在尝试使用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 %}

当我运行服务器时,出现错误:
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”。
我做错了什么?如何修复它?

为什么你不使用Django表单?在那里,你应该定义一个帮助器。 - Lara
3个回答

20

我刚刚遇到了那个错误。

忘记安装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',
]

完成这个步骤后,问题得到了解决。


5
您应该在项目设置中添加Crispy表单标签。
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 %}

当我遇到这个错误时,我已经将'crispy_forms'添加到了settings.py中,但可能忘记保存和重新加载。这只是一个提醒,请尝试一下 :) - landocalrissian

2

您确定Crispy表单的安装成功了吗?您需要安装django-crispy-forms。

然后,在您的模板index.html中,您应该按照以下方式使用crispy标记:

{% crispy name_form %} 

替代:

{{form|crispy}}

此外,您应该使用 < /p>。
{% load crispy_forms_tags %}

不,
{% load crispy_forms_tag %}

这里的name_form是什么意思? - Vishnu Kant
你定义的表单名称。此外,你应该使用 {% load crispy_forms_tags %} 而不是 {% load crispy_forms_tag %}。 - Rémi P
当我遇到这个错误时,我已经将'crispy_forms'添加到了settings.py中,但可能忘记保存和重新加载。这只是一个提醒,请尝试一下 :) - landocalrissian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接