Django:TemplateSyntaxError:无法解析余数

xpa*_*nta 38 django django-admin django-facebook

我打字时遇到这个问题localhost:8000/admin/.

`TemplateSyntaxError:无法解析余数:来自'admin:password_change'的':password_change'.在Django 1.5中更改了'url'的语法,请参阅文档.

这是我的一部分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',
)
Run Code Online (Sandbox Code Playgroud)

我做错了什么吗?

PS:这是我的全部追溯 https://gist.github.com/anonymous/e8c1359d384df7a6b405

编辑:

我按照要求粘贴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 %} 
Run Code Online (Sandbox Code Playgroud)

Gar*_*rns 87

此错误通常意味着您忘记了您尝试呈现的模板中某处的结束语.例如:( {% url 'my_view %}错误)而不是{% url 'my_view' %}(正确).在这种情况下,它是引起问题的冒号.通常,您可以编辑模板以使用正确的{% url %} 语法.

但是没有理由为什么django管理站点会抛出这个,因为它会知道它自己的语法.因此,我最好的猜测是grapelli导致您的问题,因为它更改了管理模板.从已安装的应用程序中删除grappelli有帮助吗?

  • 好的,我将`{%url admin:password_change as password_change_url%}`更改为`{%url'admin:password_change'as password_change_url%}`(添加了单引号),它似乎有效.单引号也需要添加到其他地方.需要更改的文件是:`lib/python2.7/site-packages/grappelli/templates/admin/includes_grappelli/header.html`. (3认同)
  • 我想补充一点,当我应该一直使用“ {%%}”时,使用“ {{}}”时出现此错误。 (2认同)

小智 12

对我来说,它使用 {{ }} 而不是 {% %}:

href="{{ static 'bootstrap.min.css' }}"  # wrong
href="{% static 'bootstrap.min.css' %}"  # right
Run Code Online (Sandbox Code Playgroud)


小智 5

后面不应该有空格name

错误:

{% url 'author' name = p.article_author.name.username %}
Run Code Online (Sandbox Code Playgroud)

正确的:

{% url 'author' name=p.article_author.name.username %}
Run Code Online (Sandbox Code Playgroud)