尝试使用
crispy
过滤器时,我收到错误:
django.template.exceptions.TemplateSyntaxError: Invalid filter: 'crispy'
我相信这是因为
Django
找不到脆皮过滤器,因为当我放入不存在的过滤器时,我收到了同样的错误。
这是模板。
{% extends "breed_identifier/base.html" %}
(% load crispy_forms_tags %)
{% block content %}
<div class="content-section">
<form method="POST">
<fieldset class="form-group">
<legend class="border-bottom mb-4">Join Today</legend>
{{ form|crispy }}
</fieldset>
</form>
</div>
{% endblock content %}
这是在我的settings.py 文件中。
INSTALLED_APPS = [
'users.apps.UsersConfig',
'django.contrib.admin',
'breed_identifier.apps.BreedIdentifierConfig',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
]
我遇到了同样的问题,但在模板顶部加载脆皮{%加载脆皮_形式_标签%}表单后解决了
{% extends 'base.html' %} {% block content %}
{% load crispy_forms_tags %}
<div class="container">
<div class="row">
<div class="col-md-8 card mb-4 mt-3 left top">
<div class="card-body">
<h1>{% block title %} {{ post.title }} {% endblock title %}</h1>
<p class=" text-muted">{{ post.author }} | {{ post.created_on }}</p>
<p class="card-text ">{{ post.content | safe }}</p>
</div>
</div>
{% block sidebar %} {% include 'sidebar.html' %} {% endblock sidebar %}
<div class="col-md-8 card mb-4 mt-3 ">
<div class="card-body">
<!-- comments -->
<h2>{{ comments.count }} comments</h2>
{% for comment in comments %}
<div class="comments" style="padding: 10px;">
<p class="font-weight-bold">
{{ comment.name }}
<span class=" text-muted font-weight-normal">
{{ comment.created_on }}
</span>
</p>
{{ comment.body | linebreaks }}
</div>
{% endfor %}
</div>
</div>
<div class="col-md-8 card mb-4 mt-3 ">
<div class="card-body">
{% if new_comment %}
<div class="alert alert-success" role="alert">
Your comment is awaiting moderation
</div>
{% else %}
<h3>Leave a comment</h3>
<form method="post" style="margin-top: 1.3em;">
{{ comment_form | crispy }}
{% csrf_token %}
<button type="submit" class="btn btn-primary btn-lg">Submit</button>
</form>
{% endif %}
</div>
</div>
</div>
</div>
{% endblock content %}
请确保在部分内容中包含 {% load Cripy_forms_tags %},例如:
{% extends 'posts/bases/base.html' %}
{% load crispy_forms_tags %}
{% block title%}
<title>Register</title>
{% endblock %}
{% block content%}
<h1>Register</h1>
<form action="" method="post">
{% csrf_token %}
{{ form|crispy }}
<button type="submit">Register</button>
</form>
{% endblock %}
如果你将其加载到base.html中将无法工作
Django==3.1.4
django-crispy-forms==1.10.0
我有同样的错误...你正在使用 (),就像这样: (%加载crispy_forms_tags%) 而不是 {},例如: {%加载crispy_forms_tags%}
一个基本错误(我经常犯)是,即使你加载了 Cripy_form_tags,你实际上也使用了 Cripy。如果您使用
Invalid filter: 'crispy_forms_tags'
而不是 {{form|crispy_forms_tags}}
,可能会出现错误 {{form|crispy}}
。
{% load crispy_forms_tags %}
{{ login_form | crispy_forms_tags }} /* <--- Invalid filter: 'crispy_forms_tags' */
{{ login_form | crispy }} /* <--- OK */