1. ホーム
  2. django

[解決済み] Django: TemplateSyntaxError: 余りをパースできませんでした。

2022-02-04 05:36:24

質問

を入力すると、この問題が発生します。 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',
)

何か悪いことをしたのだろうか?

追記:以下は私の完全なトレースバックです。 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 %} 

解決方法は?

このエラーは、通常、レンダリングしようとしているテンプレートのどこかに閉じ引用符を忘れていることを意味します。たとえば、次のような場合です。 {% url 'my_view %} (誤り)ではなく {% url 'my_view' %} (正しい)。この場合、問題を引き起こしているのはコロンです。通常は、テンプレートを編集して、正しい {% url %} 構文 .

しかし、django の管理サイトは独自の構文を知っているはずなので、これを投げる理由はないでしょう。したがって、私の最良の推測は grapelli は、管理者テンプレートを変更するため、あなたの問題を引き起こしています。インストールされているアプリからgrappelliを削除することは有効ですか?