尝试在 Django 中的表单上使用脆皮表单过滤器时收到'invalid form: crispy'错误,但仅在一个 django 应用程序中而不是另一个应用程序中?



尝试使用crispy过滤器时,我收到错误:

django.template.exceptions.TemplateSyntaxError: 无效的过滤器: "酥脆">

我相信这是因为Django由于某种原因无法找到脆皮过滤器,因为当我输入不存在的过滤器的名称时,我收到了相同的错误。

我在 html 文档的顶部使用了{% load crispy_forms_tags %},并使用{{ form|crispy }}来应用过滤器。我还在settings.py文件中添加了"脆皮表单"应用程序,并安装了带有pipdjango-crispy-forms包,我可以使用pip freeze清楚地看到它。

请注意,脆皮表单过滤器确实适用于我网站的不同 django 应用程序,即使我认为我没有更改该应用程序目录中的任何内容(但我可能是错的,自从我在该目录中工作以来已经有一段时间了(。我不知道有什么不同。我读了一些关于过滤器附加到第一个应用程序目录的内容,仅此而已,但该信息含糊不清,当我从使用它的模板中删除{% load crispy_forms_tags %}行时,脆皮过滤器仍然无法在新应用程序中工作。

这是模板。

{% extends "breed_identifier/base.html" %}
(% load crispy_forms_tags %)
{% block content %}
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Join Today</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Sign Up</button>
</div>
</form>
<div class="border-top pt-3">
<small class="text-muted">
Already Have An Account? <a class="ml-2" href="#">Sign In</a>
</small>
</div>
</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',
]

我遇到了同样的问题,但在模板顶部加载脆皮 {% load crispy_forms_tags %} 表单后得到解决

{% 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 %}

请使小时在部分中包含{%负载crispy_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 %}

如果将其加载到底座中.html将无法正常工作

姜戈==3.1.4

姜戈-脆皮形式==1.10.0

我有同样的错误...你正在使用 ((,就像这样: (% 负载 crispy_forms_tags %( 而不是{},例如: {% 负载 crispy_forms_tags %}

相关内容

最新更新