2011-12-21 4 views
8

私はちょうどPythonとdjangoを学び始めました。私は質問があります。 私は、関数ビューをクラスベースのビューにするという割り当てを得ました。しかし、私のリンクは今働きません。Djangoは、クラスベースのビューへのパラメータを持つURLを逆

これらはurls.pyから、次のとおりです。

url(r'^$', ContactIndex.as_view()), 
url(r'^add$', ContactAdd.as_view()), 
url(r'^([0-9]+)/update$', ContactUpdate.as_view()), 
url(r'^([0-9]+)/view$', ContactView.as_view()), 

これは私のリンクです:

{% url rtr_contact.views.ContactView contact.id %} 

が、このdoesntの仕事、それは言う:

Caught NoReverseMatch while rendering: Reverse for 'rtr_contact.views.ContactView' with arguments '(20L,)' and keyword arguments '{}' not found. 
+1

あなたはスラッシュであなたのURLパターンをサフィックスする必要があります。これはDjangoの標準でもあり、他のプログラムも簡単に使えるようになりました。(細かいことはありません...) – jpic

答えて

17

を簡単に反転させるURLを作成するには、私はいつもname your url patternsをお勧めします。

url(r'^$', ContactIndex.as_view(), name="contact_index"), 
url(r'^add$', ContactAdd.as_view(), name="contact_add"), 
url(r'^([0-9]+)/update$', ContactUpdate.as_view(), name="contact_update"), 
url(r'^([0-9]+)/view$', ContactView.as_view(), name="contact_view"), 

次にテンプレートで:

{% url contact_view contact.id %} 
+1

ありがとうございました。私はdjangoのドキュメントが簡単だったらいいと思う。 – user769498

+2

私は全体的にDjangoのドキュメントが優れていると思います。クラスベースのビューのセクションは少し裸ですが、うまくいけば、それは将来的には派生するでしょう。 – Alasdair

+2

これは未来で、クラスベースのジェネリックビューのドキュメントはまだ欠けています。あなたの答えをありがとう - それも私を助けた。 – tatlar

関連する問題