crispy_forms_tag' 不是有效的标签库

Vis*_*ant 7 django django-crispy-forms

我正在尝试使用 Django 脆皮形式创建一个 Django 应用程序。

设置.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',
)
Run Code Online (Sandbox Code Playgroud)

索引.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 %}
Run Code Online (Sandbox Code Playgroud)

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

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”。

我究竟做错了什么?以及如何修复它?

mol*_*der 21

我刚才就经历过这个错误。

忘记安装 django-crispy-forms

pip install django-crispy-forms
Run Code Online (Sandbox Code Playgroud)

并在settings.py中引用它

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
]
Run Code Online (Sandbox Code Playgroud)

一旦完成,问题就解决了。


小智 5

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

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'crispy_forms',
]
Run Code Online (Sandbox Code Playgroud)

在你的 templates.html 中添加这些清晰的标签

    {% load crispy_forms_tags %}
      {% csrf_token %}
    {% crispy form %}
Run Code Online (Sandbox Code Playgroud)


Rém*_*i P 2

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

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

{% crispy name_form %} 
Run Code Online (Sandbox Code Playgroud)

代替 :

{{form|crispy}}
Run Code Online (Sandbox Code Playgroud)

更重要的是,你应该使用

{% load crispy_forms_tags %}
Run Code Online (Sandbox Code Playgroud)

不是,

{% load crispy_forms_tag %}
Run Code Online (Sandbox Code Playgroud)