1

回溯
也有人可以告诉我如何阅读回溯,这样我就可以避免问愚蠢的问题吗?

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)
4

1 回答 1

2

在这种情况下,回溯无疑有点令人困惑。Django 认为这是一个模板错误,因此会为您提供模板的片段以及它认为发生的位置的追溯。但实际上,错误更深——它发生在 Django 尝试解析{% url %}标记时,它对 url 和视图进行反向查找以提供链接。

但是为了做到这一点,它必须导入你所有的视图:并且你在其中一个视图中有一个语法错误,在第 124 行。不幸的是,它没有告诉你是哪一个。

于 2011-10-07T09:22:49.663 回答