2012-07-13 41 views
9

thể trùng lặp:
Django view - load template from calling app's dir firstDjango tên mẫu xung đột

Tôi có dự án với một số ứng dụng Django. Cấu trúc tệp thực tế như sau:

myproj/ 
    default/ 
    templates/ 
     index.html (1) 
    app1/ 
    templates/ 
     index.html (2) 
    app2/ 
    templates/ 
     index.html (3) 

Tôi mong rằng thư mục mẫu của ứng dụng đang hoạt động có mức độ ưu tiên cao nhất khi phân giải mẫu. Nhưng thực sự tôi đã nhận được mẫu đầu tiên cho phù hợp với lệnh INSTALLED_APPS! Nếu tôi thay đổi thứ tự của các ứng dụng đã cài đặt - mẫu được thay đổi tương ứng.

Câu hỏi: có cách nào để lấy mẫu từ ứng dụng hiện tại trước không? Tính duy nhất của tên mẫu/đặc tả thư mục rõ ràng là cách duy nhất để đạt được nó?

+1

Bạn có thể muốn xem http://stackoverflow.com/questions/3092865/django-view-load-template-from-calling-apps-dir-first – Rohan

+0

Cảm ơn bạn, đúng vậy. –

Trả lời

10

Giải pháp thông thường là đặt mẫu trong một thư mục con, đặt theo tên của ứng dụng của bạn, chẳng hạn như:

myproj/ 
    app1/ 
    templates/ 
     app1/ 
     index.html 

này được thực hiện bởi các ứng dụng vận chuyển (như django.contrib.admin) và hoạt động khá tốt. Tôi thường sử dụng các tên chung chung như index.html trong mẫu gốc cho các tệp dự án cụ thể (ví dụ: chỉ mục của toàn bộ trang web).

+0

Đó là cách Django. Tôi quên mất điều đó và xóa câu trả lời của tôi vì đây là câu trả lời đúng trong đầu tôi. – Jens