2011-12-21 2 views
8

방금 ​​파이썬과 장고를 배우기 시작했고 질문이 있습니다. 함수보기를 클래스 기반보기로 전환하는 과제가 있습니다. 하지만 내 링크가 지금은 작동하지 않습니다.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 %} 

하지만이 나던 작품은 말한다 :

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

당신은 슬래시로 URL 패턴을 접미사한다. 그것은 장고의 표준이기도하여 다른 프로그램이 쉽게 작업 할 수 있습니다 (피투성이의 세부 사항에 들어 가지 않고 ...) – 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

감사합니다. 나는 장고의 문서가 더 쉬웠 으면 좋겠다. – user769498

+2

전체적으로 Django 문서가 훌륭하다고 생각합니다. 클래스 기반 뷰에 관한 섹션은 약간 베어지만, 잘하면 앞으로는 더욱 복잡해질 것이다. – Alasdair

+2

그것은 미래이며 클래스 기반 제네릭 뷰 문서는 여전히 부족합니다. 귀하의 답변에 감사드립니다 - 그것은 나를 도왔습니다. – tatlar

관련 문제