2011-12-21 29 views
8

Tôi chỉ mới bắt đầu học python và django và tôi có một câu hỏi. Tôi nhận nhiệm vụ chuyển chế độ xem chức năng thành chế độ xem dựa trên lớp học. Nhưng các liên kết của tôi không hoạt động ngay bây giờ.Url ngược Django với các tham số cho một lớp học dựa trên xem

đây là những từ 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()), 

Đây là liên kết của tôi:

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

nhưng công việc doesnt này nó nói:

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

Bạn nên hậu tố mẫu url của bạn với một dấu gạch chéo. Đó là một tiêu chuẩn trong Django cũng nó làm cho nó dễ dàng hơn cho các chương trình khác để làm việc với nó (mà không đi vào chi tiết đẫm máu ...) – jpic

Trả lời

17

Để làm url đảo ngược dễ dàng, Tôi khuyên bạn luôn luôn 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"), 

Sau đó, trong mẫu:

{% url contact_view contact.id %} 
+1

Cảm ơn bạn, Nó làm việc. Tôi muốn tài liệu của django dễ dàng hơn. – user769498

+2

Tôi nghĩ rằng trên toàn bộ, tài liệu Django là tuyệt vời. Các phần trên lớp dựa trên quan điểm là một chút trần, nhưng hy vọng nó sẽ nhận được fleshed ra trong tương lai. – Alasdair

+2

Đó là tương lai và tài liệu chế độ xem chung dựa trên lớp học vẫn còn thiếu. Cảm ơn câu trả lời của bạn - nó cũng giúp tôi. – tatlar

Các vấn đề liên quan