【问题标题】:crispy_forms_tag' is not a valid tag librarycrispy_forms_tag' 不是有效的标签库
【发布时间】:2014-07-28 08:48:51
【问题描述】:

我正在尝试使用 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 表单?在那里你应该定义一个助手..

标签: django django-crispy-forms


【解决方案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',
]

完成后,问题就解决了。

【讨论】:

    【解决方案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 %}
    

    【讨论】:

    • 当我收到此错误时,我已将'crispy_forms', 添加到settings.py,但一定忘记保存并重新加载。只是提醒您尝试一下:)
    【解决方案3】:

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

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

    {% crispy name_form %} 
    

    而不是:

    {{form|crispy}}
    

    更重要的是,你应该使用

    {% load crispy_forms_tags %}
    

    不是,

    {% load crispy_forms_tag %}
    

    【讨论】:

    • 这里的name_form是什么意思?
    • 您定义的表单的名称。更重要的是,你应该使用 {% load crispy_forms_tags %} 而不是 {% load crispy_forms_tag %}
    • 当我收到此错误时,我已将'crispy_forms', 添加到settings.py,但一定忘记保存并重新加载。只是提醒您尝试一下:)
    猜你喜欢
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2011-05-31
    • 1970-01-01
    • 2012-08-22
    • 2012-04-02
    相关资源
    最近更新 更多