質問

Djangoの認証を使用しており、login.htmlテンプレートでは、次のステートメントがエラーを生成しています。

{% url 'django.contrib.auth.views.login' %}

TemplatesYntaxerror AT /LOGIN

レンダリング中にnoreversematchをキャッチしました: '' django.contrib.auth.views.login '' with arguments '()'およびキーワード引数 '{}'を使用してreverse for ''

このURLは私のurls.pyで定義されています:

(r'^login$', 'django.contrib.auth.views.login')

AUTHシステムをインストールしました:

INSTALLED_APPS = (
    'django.contrib.auth',
...
)

何か案は?

役に立ちましたか?

解決

Django1.10の時点:

Django1.10の時点で、文字列を使用することはできなくなりました 'django.contrib.auth.views.login'url() または {% url %} 鬼ごっこ。

まず、URLパターンを変更して呼び出し可能なものを使用し、URLパターンに名前を付けます。例えば:

from django.contrib.auth import views as auth_views

url_patterns = [
    url(r'^login$', auth_views.login, name='login'),
]

次に、URLタグを更新して、同じ名前を使用します。

{% url 'login' %}

Django1.5の時点:

必要はありません {% load url from future %} もう、引用された構文を使用するだけです({% url 'django.contrib.auth.views.login' %})そして、あなたは完了です(を参照してください Django 1.5リリースノート).

Django1.3の時点:

ご了承ください Django 1.3の時点 (カレン・トレーシーが指摘するように )、これを修正する正しい方法は、追加することです。

{% load url from future %}

テンプレートの上部で、次のように使用します。

{% url 'django.contrib.auth.views.login' %}

Django1.3の前:

そのエラーメッセージから判断すると(ビューへのパスの周りのダブルシングルクォートに注意してください)、私はそれが {% url ... %} タグは引用符を望んでいません、試してください:

{% url django.contrib.auth.views.login %}

他のヒント

引用符のある構文は、Django 1.3で新しくなっています。 1.3フォワードでエラーを修正する正しい方法は、テンプレート内の(future%からURLを積み込みます}をIncldueすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top