Непонятное исключение из Django 2.0 Admin Template - PullRequest
0 голосов
/ 04 июня 2019

Это странная (для меня) проблема отладки.У меня есть приложение 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 и всеми .py файлами для app1 с более ранней версией, и нет никаких различий.Я также рассмотрел различия в файлах .py от более ранних версий app2 и app3, и единственными изменениями были те, которые я сделал, и ни одно из них не выдает ошибку при использовании формы изменения администратора для моделей в этих приложениях.,

Я не знаю, как отследить источник этой ошибки, поскольку он исходит из недр кода Django.Любые предложения будут с благодарностью!

Марк

1 Ответ

1 голос
/ 04 июня 2019

Ошибка в вашем шаблоне. У вас цитата не в том месте:

14 :    {% cycle  '</table'> ' ' %} 

Должно быть:

14 :    {% cycle  '</table>' ' ' %} 

Это в memorabilia-JSON/memorabilia/templates/admin/memorabilia/change_form.html согласно трассировке.

...