#django #django-errors
#django #django-ошибки
Вопрос:
Обратная трассировка
Также может кто-нибудь, пожалуйста, скажите мне, как читать трассировки, чтобы я мог воздержаться от глупых вопросов?
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:python26libsite-packagesdjangocontribadmintemplatesadminbase.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:Python26libsite-packagesdjangocorehandlersbase.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:Python26libsite-packagesdjangocontribadminsites.py" in wrapper
214. return self.admin_view(view, cacheable)(*args, **kwargs)
File "C:Python26libsite-packagesdjangoutilsdecorators.py" in _wrapped_view
93. response = view_func(request, *args, **kwargs)
File "C:Python26libsite-packagesdjangoviewsdecoratorscache.py" in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File "C:Python26libsite-packagesdjangocontribadminsites.py" in inner
197. return view(request, *args, **kwargs)
File "C:Python26libsite-packagesdjangoviewsdecoratorscache.py" in _wrapped_view_func
79. response = view_func(request, *args, **kwargs)
File "C:Python26libsite-packagesdjangocontribadminsites.py" in index
382. context_instance=context_instance
File "C:Python26libsite-packagesdjangoshortcuts__init__.py" in render_to_response
20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "C:Python26libsite-packagesdjangotemplateloader.py" in render_to_string
188. return t.render(context_instance)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
123. return self._render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in _render
117. return self.nodelist.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplateloader_tags.py" in render
127. return compiled_parent._render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in _render
117. return self.nodelist.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplateloader_tags.py" in render
127. return compiled_parent._render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in _render
117. return self.nodelist.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplatedefaulttags.py" in render
311. return self.nodelist_true.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplatedefaulttags.py" in render
311. return self.nodelist_true.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplateloader_tags.py" in render
64. result = block.nodelist.render(context)
File "C:Python26libsite-packagesdjangotemplatebase.py" in render
744. bits.append(self.render_node(node, context))
File "C:Python26libsite-packagesdjangotemplatedebug.py" in render_node
73. result = node.render(context)
File "C:Python26libsite-packagesdjangotemplatedefaulttags.py" in render
437. url = reverse(view_name, args=args, kwargs=kwargs, current_app=context.current_app)
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in reverse
391. *args, **kwargs)))
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in reverse
312. possibilities = self.reverse_dict.getlist(lookup_view)
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in _get_reverse_dict
229. self._populate()
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in _populate
208. for name in pattern.reverse_dict:
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in _get_reverse_dict
229. self._populate()
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in _populate
220. lookups.appendlist(pattern.callback, (bits, p_pattern))
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in _get_callback
164. self._callback = get_callable(self._callback_str)
File "C:Python26libsite-packagesdjangoutilsfunctional.py" in wrapper
124. result = func(*args)
File "C:Python26libsite-packagesdjangocoreurlresolvers.py" in get_callable
91. lookup_view = getattr(import_module(mod_name), func_name)
File "C:Python26libsite-packagesdjangoutilsimportlib.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:
В этом случае обратная трассировка, по общему признанию, немного сбивает с толку. Django считает, что это ошибка шаблона, и поэтому предоставляет вам фрагмент шаблона и обратную трассировку того, где, по его мнению, это произошло. Но на самом деле ошибка глубже — она возникает, когда Django пытается разрешить {% url %}
тег, который выполняет обратный поиск по URL-адресам и представлениям для предоставления ссылки.
Но для этого он должен импортировать все ваши представления: и у вас есть синтаксическая ошибка в одном из них, в строке 124. К сожалению, он не сообщает вам, какой именно.
Комментарии:
1. Привет, спасибо, я нашел это, проверив все мои views.py , немного болезненно, но нашел это.