Giả sử tôi có một dự án Django với ba ứng dụng: foo, bar và keo. Tôi đang cố gắng làm theo các quy ước ứng dụng có thể tái sử dụng, vì vậy foo và bar không phụ thuộc vào (và không biết gì về) lẫn nhau hoặc trên keo. Keo chứa mã để tích hợp hai ứng dụng khác vào trang web.Django: Làm cách nào để ghi đè url do ứng dụng cung cấp trong urlconf dự án của tôi?
Foo cung cấp thẻ mẫu mà tôi muốn đưa vào một trong các trang do thanh cung cấp. Chế độ xem cho trang của thanh có thể được chuyển qua một mẫu thay thế. Tôi làm cho một mẫu trong keo kéo dài mẫu của thanh và bao gồm thẻ mẫu từ foo. Để chuyển mẫu mới của tôi vào chế độ xem của thanh, tôi cần phải sửa đổi mục nhập urlconf trỏ đến nó.
Dự án của tôi URLconf trông giống như sau:
urlpatterns = patterns('',
(r'^$', include('glue.urls')),
(r'^foo/', include('foo.urls')),
(r'^bar/', include('bar.urls')),
)
cách thanh lịch nhất để vượt qua các mẫu thay thế là gì (hoặc bất kỳ đối số quan điểm khác tùy ý, cho rằng vấn đề) để xem trong thanh? Tôi không muốn sửa đổi url của thanh trực tiếp, vì điều đó sẽ làm cho nó phụ thuộc vào keo.
Phương pháp duy nhất tôi có thể nghĩ là xóa include('bar.urls')
, sao chép mẫu url trong urlconf của thanh vào url dự án và sửa đổi mẫu mà tôi quan tâm. Phương pháp đó vi phạm nguyên tắc DRY. Có một số giải pháp khác mà tôi đang thiếu?
tôi sẽ xem xét cách tiếp cận này, nhưng nó không hoàn toàn những gì tôi đang tìm kiếm. Điều gì sẽ xảy ra nếu tôi muốn vượt qua một số đối số khác để xem? Khung nhìn được gọi trong urlconf, do đó có vẻ như là nơi hợp lý để chuyển đối số. –
Bạn muốn chuyển đối số tùy ý cho chế độ xem? Làm rõ câu hỏi của bạn. –
Có, tương tự với các đối số mà bạn muốn chuyển sang chế độ xem chung từ urlconf. –