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

问题描述 投票:0回答:4

尝试使用

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',
]
html django django-forms django-crispy-forms
4个回答
10
投票

我遇到了同样的问题,但在模板顶部加载脆皮{%加载脆皮_形式_标签%}表单后解决了

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

4
投票

请确保在部分内容中包含 {% 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


2
投票

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


0
投票

一个基本错误(我经常犯)是,即使你加载了 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 */
© www.soinside.com 2019 - 2024. All rights reserved.