Django TemplateSyntaxError без указания имени файла или модуля - PullRequest
1 голос
/ 07 октября 2011

traceback
Также, может, кто-нибудь подскажет, как читать трассировки, чтобы я мог воздерживаться от глупых вопросов?

Environment:




Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'account',
 'fb_api',
 'trial',
 'location',
 'log',
 'kiosks',
 'store',
 'deals',
 'chat',
 'connect',
 'refer',
 'feed',
 'icrave',
 'suggest']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'log.library.LogMiddleware',
 'log.library.SSLRedirectMiddleware')


Template error:
In template c:\python26\lib\site-packages\django\contrib\admin\templates\admin\base.html, error at line 31
   Caught SyntaxError while rendering: invalid syntax (views.py, line 124)
   21 :     <!-- Header -->


   22 :     <div id="header">


   23 :         <div id="branding">


   24 :         {% block branding %}{% endblock %}


   25 :         </div>


   26 :         {% if user.is_active and user.is_staff %}


   27 :         <div id="user-tools">


   28 :             {% trans 'Welcome,' %}


   29 :             <strong>{% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}</strong>.


   30 :             {% block userlinks %}


   31 :                  {% url 'django-admindocs-docroot' as docsroot %} 


   32 :                 {% if docsroot %}


   33 :                     <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /


   34 :                 {% endif %}


   35 :                 {% url 'admin:password_change' as password_change_url %}


   36 :                 {% if password_change_url %}


   37 :                     <a href="{{ password_change_url }}">


   38 :                 {% else %}


   39 :                     <a href="{{ root_path }}password_change/">


   40 :                 {% endif %}


   41 :                 {% trans 'Change password' %}</a> /


Traceback:
File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python26\lib\site-packages\django\contrib\admin\sites.py" in wrapper
  214.                 return self.admin_view(view, cacheable)(*args, **kwargs)
File "C:\Python26\lib\site-packages\django\utils\decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\contrib\admin\sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\contrib\admin\sites.py" in index
  382.             context_instance=context_instance
File "C:\Python26\lib\site-packages\django\shortcuts\__init__.py" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "C:\Python26\lib\site-packages\django\template\loader.py" in render_to_string
  188.         return t.render(context_instance)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  123.             return self._render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in _render
  117.         return self.nodelist.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in _render
  117.         return self.nodelist.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\loader_tags.py" in render
  127.         return compiled_parent._render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in _render
  117.         return self.nodelist.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\defaulttags.py" in render
  311.             return self.nodelist_true.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\loader_tags.py" in render
  64.             result = block.nodelist.render(context)
File "C:\Python26\lib\site-packages\django\template\base.py" in render
  744.                 bits.append(self.render_node(node, context))
File "C:\Python26\lib\site-packages\django\template\debug.py" in render_node
  73.             result = node.render(context)
File "C:\Python26\lib\site-packages\django\template\defaulttags.py" in render
  437.             url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in reverse
  391.             *args, **kwargs)))
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in reverse
  312.         possibilities = self.reverse_dict.getlist(lookup_view)
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in _populate
  208.                     for name in pattern.reverse_dict:
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in _get_reverse_dict
  229.             self._populate()
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in _populate
  220.                 lookups.appendlist(pattern.callback, (bits, p_pattern))
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in _get_callback
  164.             self._callback = get_callable(self._callback_str)
File "C:\Python26\lib\site-packages\django\utils\functional.py" in wrapper
  124.         result = func(*args)
File "C:\Python26\lib\site-packages\django\core\urlresolvers.py" in get_callable
  91.                 lookup_view = getattr(import_module(mod_name), func_name)
File "C:\Python26\lib\site-packages\django\utils\importlib.py" in import_module
  35.     __import__(name)

Exception Type: TemplateSyntaxError at /admin/
Exception Value: Caught SyntaxError while rendering: invalid syntax (views.py, line 124)

1 Ответ

2 голосов
/ 07 октября 2011

В этом случае обратная связь по общему признанию немного запутана.Джанго считает, что это ошибка шаблона, и поэтому дает вам фрагмент шаблона и отслеживание того, где он считает, что это произошло.Но на самом деле ошибка глубже - она ​​возникает, когда Django пытается разрешить тег {% url %}, который выполняет обратный поиск по URL-адресам и представлениям для предоставления ссылки.

Но для этого необходимоимпортируйте все ваши представления: и у вас есть синтаксическая ошибка в одном из них, в строке 124. К сожалению, она не сообщает вам, какой из них.

...