2011-10-05 32 views
5

Xếp hạng dựa trên lớp đã trở nên tốt hơn ở Django, tôi đang gặp sự cố "thực tiễn tốt nhất" khi triển khai chế độ xem lớp học. Về cơ bản nó xuống đến số URL template tag.Django: Thực hành tốt nhất cho URL conf, thẻ mẫu url

Cho một urls.py như thế này:

urlpatterns = patterns('some_app.views', 
    url(r'^$', 'index', name='some_app_index') 
) 

tag Đó có thể mất hoặc là một đường dẫn đến một cái nhìn:

{% url some_app.views.index %} 

hoặc tên của một url:

{% url some_app_index %} 

Bây giờ, với một url dựa trên lớp học, một kết thúc u p với một url như thế này:

from some_app.views import Index 

urlpatterns = patterns('', 
    url(r'^$', Index.as_view(), name='some_app_index') 
) 

Điều đó có nghĩa rằng việc sử dụng {% url some_app.views.index %} không còn hoạt động nhưng {% url some_app_index %} vẫn làm. (Và {% url some_app.views.Index.as_view %} không có vẻ là một giải pháp).


Vì vậy, câu hỏi của tôi là gì, cách tốt nhất để tham chiếu đến URL là gì?

Đến thời điểm này, tôi tin rằng việc sử dụng phương pháp path.to.view là tốt hơn, vì nó đã được dọn sạch không gian tên. Tuy nhiên, với chế độ xem dựa trên lớp học ngày càng tốt hơn, bạn có đang sử dụng url name một cách tốt hơn không? Trong trường hợp đó, không gian tên hoàn toàn phụ thuộc vào thuộc tính tên được thiết lập bởi nhà phát triển ứng dụng theo cách phân tách tên url từ các ứng dụng khác ...

Suy nghĩ? Tôi không thể tìm thấy một "làm theo cách này" trong tài liệu Django nhưng nếu có ai đã viết về điều này, tôi rất thích đọc nó.

Trả lời

8

Tôi luôn sử dụng tên.

Bên cạnh vấn đề bạn đề cập đến với đường dẫn, bạn cũng sẽ gặp sự cố nếu bạn có hai URL trỏ đến cùng một chế độ xem.

+0

Tôi đã tự hỏi điều gì có thể xảy ra. Điều này rõ ràng là tốt hơn! – Alvaro

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