我在输入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',
)
我做错了吗?
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 %}
答案 0 :(得分:77)
此错误通常意味着您忘记了您尝试呈现的模板中某处的结束语。例如:{% url 'my_view %}
(错误)而不是{% url 'my_view' %}
(正确)。在这种情况下,它是引起问题的冒号。通常,您需要修改模板才能使用正确的{% url %}
syntax。
但是没有理由为什么django管理站点会抛出这个,因为它会知道它自己的语法。因此,我最好的猜测是grapelli
导致您的问题,因为它更改了管理模板。从已安装的应用程序中删除grappelli有帮助吗?
答案 1 :(得分:3)
{% url 'author' name = p.article_author.name.username %}
后不应有空格。
不正确:
{% url 'author' name=p.article_author.name.username %}
正确:
{{1}}
答案 2 :(得分:1)
对我来说,它使用的是 {{ }} 而不是 {% %}:
href="{{ static 'bootstrap.min.css' }}" # wrong
href="{% static 'bootstrap.min.css' %}" # right
答案 3 :(得分:0)
答案 4 :(得分:0)
模板语法错误:由于多种原因,其中之一是{{post.date_posted | date:“ F d,Y”}}是冒号(:)和引号(“)之间的空格(如果您删除空格)那么它是这样工作的..... {{post.date_posted | date:“ F d,Y”}}
答案 5 :(得分:0)
在templates / admin / includes_grappelli / header.html的第12行中,您忘记将admin:password_change
放在'
之间。
URL Django标记语法应始终类似于:
{% url 'your_url_name'%}
答案 6 :(得分:0)
您已经在settings.py中缩进了部分代码:
r=1
for i in range(m):
for j in range(n):
print(arr[max(0,i-r-1):min(i+r+1,m), max(0,j-r-1):min(j+r+1,n)])
因此,它给您一个错误。
答案 7 :(得分:0)
确保您正确使用静态文件和 URL
<link href="{% static 'css/semantic.min.css' %}" rel="stylesheet">