2011-12-21 23 views
8

Python ve django'yu öğrenmeye başladım ve bir sorum var. İşlev görünümlerini sınıf temelli görünümlere dönüştürmek için atamayı aldım. Ama bağlantılarım şimdi işe yaramıyor.Django, sınıf tabanlı bir görünümle parametreleri ters çevir

bu urls.py gelmektedir:

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()), 

Bu benim link:

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

ama bu çalışmıyor diyor:

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

Bir eğik çizgi ile url kalıplarını soneki olmalıdır. Django'da bir standarttır ve diğer programların onunla çalışmasını kolaylaştırır (gory detaylarına girmeden ...) – jpic

cevap

17

url kolay geri vites yapmak için, Her zaman name your url patterns'u tavsiye ederim. Sonra şablonda

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

Teşekkür ederim, işe yaradı. Django belgelerinin daha kolay olmasını dilerim. – user769498

+2

Bence bütünüyle Django belgeleri mükemmel. Sınıf tabanlı görünümler bölümü biraz çıplak, ama umarım gelecekte ortaya çıkacaktır. – Alasdair

+2

Gelecek ve sınıf tabanlı genel görünüm dokümanlar hala eksik. Cevabınız için teşekkürler - bu da bana yardımcı oldu. – tatlar

İlgili konular