Django=ログインシステムでこのエラーが発生し続けます。ここに私のurls.pyの一部を示します。
(r'^contractManagement/login', 'Django.contrib.auth.views.login', {'template_name': 'login.html'}),
私が得ている正確なエラー:
Exception Type: NoReverseMatch
Exception Value: Reverse for ''Django.contrib.auth.views.login'' with arguments '()' and keyword arguments '{}' not found.
このエラーが発生する理由がわかりません。他に何か必要な場合はお知らせください。
このURLを反転しようとしている場所は表示されませんが、二重引用符で囲まれているようです。 url
タグを使用している場合、URL名を引用符で囲む必要がないことに注意してください。
{% url Django.contrib.auth.views.login %}
じゃない
{% url 'Django.contrib.auth.views.login' %}
''the.unknown.view''
に含まれるqoutが多すぎることが報告されています。
これは、引用構文がDjango 1.5以降で有効になるためです。Django 1.3または1.4の場合は、テンプレート内のこの行による将来の動作:
{% load url from future %}
これはDjango 1.5。
Django 1.5+の例
{% url "path.to.some.view" %}
Django <= 1.4.x(「future」コマンドなし)の古典的な構文は次のとおりです。
{% url path.to.some.view %}
私はあなたのURLに名前を付けます(それを行うには、urlメソッドを使用する必要があります)また、すべてのURLに末尾のスラッシュを追加する必要があります、Django CommonMiddlewareはしない場合は、すべてのURLで302リダイレクトを実行します。
from Django.conf.urls.defaults import *
urlpatterns = patterns('',
url(r'^contractManagement/login/', 'Django.contrib.auth.views.login', {'template_name': 'login.html'}, name='contract_login'),
)
次に、コードでリバースを使用するか、テンプレートでURLを使用します。実際のURL(changedCotractManagement/login /)を変更することに決めた場合、名前が同じである限り、コードは引き続き有効です。
コード内:
from Django.core.urlresolvers import reverse
reverse('contract_login')
テンプレート内:
{% url contract_login %}
編集: MrOodlesごと