django - 来自 Django 2.0 管理模板的莫名其妙的异常
问题描述
这是一个奇怪的(对我来说)调试问题。我有一个 Django 2.0 应用程序,其中包含三个应用程序 - app1、app2 和 app3。app1 很久以前就可以工作了,app2 和 app3 也是如此。在这一点上,我只对所有三个应用程序使用管理界面。我在 app3 中做了一些工作来优化一些代码。我完成了它并在 app1 上运行了一些快速测试,结果它崩溃了。我可以访问 app1 中所有模型的主管理页面,但是当我单击更改页面时出现此错误
Template error:
In template /home/mark/python-projects/memorabilia-JSON/memorabilia/templates/admin/memorabilia/change_form.html, error at line 14
Could not parse the remainder: '>' from ''</table'>'
4 :
5 : {% for fieldset in adminform %}
6 : {% cycle '<table border=0 width=100%>' ' ' %}
7 : {% cycle '<tr>' ' ' %}
8 : {% cycle '<td width =50%’ ‘td width =50%>' ' ' %}
9 :
10 : {% include "admin/includes/fieldset.html" %}
11 :
12 : {% cycle '</td>' '</td>' ' ' %}
13 : {% cycle '</tr>' ' '%}
14 : {% cycle '</table'> ' ' %}
15 :
16 : {% endfor %}
17 : {% endblock %}
18 :
19 :
Traceback:
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
158. response = self.process_exception_by_middleware(e, request)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
156. response = response.render()
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/response.py" in render
106. self.content = self.rendered_content
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/response.py" in rendered_content
81. template = self.resolve_template(self.template_name)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/response.py" in resolve_template
63. return select_template(template, using=self.using)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/loader.py" in select_template
42. return engine.get_template(template_name)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/backends/django.py" in get_template
34. return Template(self.engine.get_template(template_name), self)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/engine.py" in get_template
144. template, origin = self.find_template(template_name)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/engine.py" in find_template
126. template = loader.get_template(name, skip=skip)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/loaders/base.py" in get_template
30. contents, origin, origin.template_name, self.engine,
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in __init__
160. self.nodelist = self.compile_nodelist()
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in compile_nodelist
198. return parser.parse()
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
483. raise self.error(token, e)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
481. compiled_result = compile_func(self, token)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/loader_tags.py" in do_extends
290. nodelist = parser.parse()
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
483. raise self.error(token, e)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
481. compiled_result = compile_func(self, token)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/loader_tags.py" in do_block
233. nodelist = parser.parse(('endblock',))
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
483. raise self.error(token, e)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
481. compiled_result = compile_func(self, token)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/defaulttags.py" in do_for
815. nodelist_loop = parser.parse(('empty', 'endfor',))
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
483. raise self.error(token, e)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in parse
481. compiled_result = compile_func(self, token)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/defaulttags.py" in cycle
628. values = [parser.compile_filter(arg) for arg in args[1:]]
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/defaulttags.py" in <listcomp>
628. values = [parser.compile_filter(arg) for arg in args[1:]]
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in compile_filter
568. return FilterExpression(token, self)
File "/home/mark/.virtualenvs/memorabilia-JSON/lib/python3.6/site-packages/django/template/base.py" in __init__
668. "from '%s'" % (token[upto:], token))
Exception Type: TemplateSyntaxError at /admin/memorabilia/collection/1/change/
Exception Value: Could not parse the remainder: '>' from ''</table'>'
app2 和 app3 的管理页面都没有这个错误——它们工作得很好。我从未接触过任何应用程序的管理模板。我尝试在 admin.py 和 app1 的所有 .py 文件与早期版本之间进行比较,并且没有区别。我还查看了早期版本的 app2 和 app3 中 .py 文件的差异,唯一的更改是我所做的更改,当我对这些应用程序中的模型使用管理员更改表单时,它们都没有抛出和错误.
我不知道如何追踪这个错误的来源,因为它来自 Django 代码的内部。任何建议将不胜感激!
标记
解决方案
错误在您的模板中。你有一个错误的地方引用:
14 : {% cycle '</table'> ' ' %}
应该:
14 : {% cycle '</table>' ' ' %}
这是memorabilia-JSON/memorabilia/templates/admin/memorabilia/change_form.html
根据回溯。
推荐阅读
- sql - 如何通过端口向网络外的计算机发送 SQL 查询?
- php - 我无法在 Laravel 5.7 中更新选择多个选项
- c# - asp.net Mvc _布局
- docker - 如何更改正在运行的 docker 容器的网络?
- c# - 使用windsor从另一个对象调用方法来解决依赖关系
- php - 使用 PHP 将 CSV 导入 MySQL,并将第一个 csv 数据作为 MySQL 列
- c# - GridViewMultiComboBoxColumn telerik c# filter
- java - 添加 FirebaseAuth.getInstance 后应用程序崩溃
- java - Java泛型返回参数类型的泛型列表
- mysql - Spring Boot:HIbernate 不断调用复杂的外连接查询