Django: TemplateSyntaxError: не удалось проанализировать остаток
Я получаю эту проблему, когда набираю localhost:8000/admin/
.
`TemplateSyntaxError: не удалось проанализировать остаток: ': password_change' из 'admin: password_change'. Синтаксис "url" изменен в Django 1.5, см. Документы.
Здесь часть моего settings.py
:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'grappelli',
'filebrowser',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
#'django.contrib.admindocs',
'tinymce',
'sorl.thumbnail',
'south',
'django_facebook',
'djcelery',
'devserver',
'main',
)
AUTH_USER_MODEL = 'django_facebook.FacebookCustomUser'
AUTHENTICATION_BACKENDS = (
'django_facebook.auth_backends.FacebookBackend',
'django.contrib.auth.backends.ModelBackend',
# Uncomment the following to make Django tests pass:
'django.contrib.auth.backends.ModelBackend',
)
Я сделал что-то не так?
PS: Это моя полная трассировка
https://gist.github.com/anonymous/e8c1359d384df7a6b405
EDIT:
Я вставляю вывод grep по запросу:
$ ack-grep --type=python -r ':password_change' .
lib/python2.7/site-packages/django/contrib/admin/sites.py
264:url = reverse('admin:password_change_done', current_app=self.name)
lib/python2.7/site-packages/grappelli/dashboard/dashboards.py
147:reverse('%s:password_change' % site_name)],
$ ack-grep --type=html -r ':password_change' .
lib/python2.7/site-packages/django/contrib/admin/templates/admin/base.html
36:<a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
lib/python2.7/site-packages/grappelli/templates/admin/includes_grappelli/header.html
12:{% url admin:password_change as password_change_url %}
Ответы
Ответ 1
Эта ошибка обычно означает, что вы забыли закрытую цитату где-нибудь в шаблоне, который вы пытаетесь сделать. Например: {% url 'my_view %}
(неверно) вместо {% url 'my_view' %}
(правильно). В этом случае это двоеточие, которое вызывает проблему. Обычно вы редактируете шаблон для использования правильного синтаксиса {% url %}
.
Но нет причин, по которым админ-сайт django бросил бы это, так как он знал бы свой собственный синтаксис. Поэтому я думаю, что grapelli
вызывает вашу проблему, так как она изменяет шаблоны администратора. Помогает ли удаление grappelli из установленных приложений?