Djangoの認証を使用していますが、login.htmlテンプレートで、次のステートメントがエラーを生成しています。
{% url 'Django.contrib.auth.views.login' %}
/ loginのTemplateSyntaxError
レンダリング中にNoReverseMatchがキャッチされました:引数「()」およびキーワード引数「{}」が見つからない「Django.contrib.auth.views.login」のリバース。
このURLは私のurls.pyで定義されています:
(r'^login$', 'Django.contrib.auth.views.login')
認証システムをインストールしました:
INSTALLED_APPS = (
'Django.contrib.auth',
...
)
何か案は?
Django 1.10以降、url()
または'Django.contrib.auth.views.login'
タグで文字列{% 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' %}
{% load url from future %}
はもう必要ありません。引用符で囲まれた構文({% url 'Django.contrib.auth.views.login' %}
)を使用するだけで、完了です( Django 1.5リリースノート を参照)。
Django 1. (Karen Traceyが指摘しているように 以下 )の時点で、これを修正する正しい方法は次を追加することです。
{% load url from future %}
テンプレートの上部で、次を使用します。
{% url 'Django.contrib.auth.views.login' %}
そのエラーメッセージ(ビューへのパスを囲む二重引用符に注意)から判断すると、 {% url ... %}
タグは引用符を必要としないと思います。次のことを試してください。
{% url Django.contrib.auth.views.login %}
引用符付きの構文はDjango 1.3で新しく追加されました。1.3以降のエラーを修正する正しい方法は、テンプレートに{%load url from future%}を含めることです。