django-botstrap5模板语法错误



我正在尝试将Django bootstrap 5用于我的表单,在创建表单和我呈现的所有模板之后,它就在这里。

{% extends "base.html" %}
{% load bootstrap5 %}
{% block content %}
<div class="container">
<h1>Log In</h1>
<form method="POST" class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">login</button>
{% endbuttons %}
{% endblock bootsrap_form %}
</form>
</div>
{% endblock content %}

urls.py

path('login/',auth_views.LoginView.as_view(template_name='account/login.html'),name='login')

但当我运行服务器时,我遇到了一个模板语法错误,告诉我它需要一个结束块,而我已经有了一个结束区块,错误如下:

TemplateSyntaxError at /account/login/
Invalid block tag on line 8: 'bootsrap_form', expected 'endblock'. Did you forget to register or load this tag?
Request Method: GET
Request URL:    http://127.0.0.1:8000/account/login/
Django Version: 3.2.4
Exception Type: TemplateSyntaxError
Exception Value:    
Invalid block tag on line 8: 'bootsrap_form', expected 'endblock'. Did you forget to register or load this tag?

错误界面中返回的代码如下所示:

1   {% extends "base.html" %}
2   {% load bootstrap5 %}
3   {% block content %}
4   <div class="container">
5     <h1>Log In</h1>
6     <form method="POST">
7       {% csrf_token %}
8       {% bootsrap_form form%}
9       <input type="submit" class="btn btn-default" value="Login">
10    </form>
11  
12  </div>
13  
14  {% endblock content %}

我注意到:当我第一次运行服务器时,我把bootstrap写为bootstrap,犯了一个拼写错误,从那时起我就修复了它,但这个错误一直向我显示我删除的第一个代码。我做了什么:因为我注意到了这一点,所以在我的视图中更改了模板名称,以确保它没有找到模板,并重新运行服务器。但最糟糕的是,同样的错误再次出现,不仅是它没有确认我对模板所做的更正,它所做的只是重新调整我删除的第一个模板。注意,我还阅读了Django模板文档,它并没有解决这个问题

显然,这两个模板之间有很大的差异。这种情况可能发生在:

  • 您使用的库中包含一些模板:如果您安装的应用程序列表(在设置中(的顺序不正确,则包含的模板可能具有优先级
  • 您有几个login.html模板(可能会发生这种情况(,您的视图会自动重定向到错误的模板

最后但并非最不重要的是:bootstrap5有时令人困惑:4和5之间存在巨大差异。如果您将bootstrap5与受bootstrap4启发的模板一起使用,您将陷入无尽的麻烦,因为什么都不起作用。

最新更新