django-overextends là một ứng dụng có thể dùng lại Django cung cấp các mẫu thẻ overextends, một sự thay thế drop-in cho Django đã mở rộng thẻ, trong đó cho phép bạn sử dụng hình tròn mẫu thừa kế.
Các trường hợp sử dụng chính cho overextends là đồng thời ghi đè lên và mở rộng các mẫu từ các ứng dụng khác có thể dùng lại, trong dự án Django của riêng bạn.
Ví dụ
Hãy xem xét các mô-đun cài đặt và các mẫu sau đây, với các ứng dụng và app1 app2 kèm trong dự án, vì lợi ích của ví dụ:
# Settings.py
INSTALLED_APPS = (
& Nbsp; "app1",
& Nbsp; "app2",
& Nbsp; "overextends",
)
TEMPLATE_LOADERS = (
& Nbsp; "django.template.loaders.filesystem.Loader",
& Nbsp; "django.template.loaders.app_directories.Loader",
)
PROJECT_ROOT = os.path.dirname (os.path.abspath (__ file__))
TEMPLATE_DIRS = (os.path.join (PROJECT_ROOT, "mẫu"),)
Tiêu đề
{% Block% chính}
Một đoạn trong app1
{% Enblock%}
{% Overextends "trang / page.html"%}
{% Block% chính}
Một đoạn trong app2, mà muốn được trên đầu trang của các khối chính app1 của
{{}} Block.super
{% Enblock%}
{% Overextends "trang / page.html"%}
{% Block% chính}
{{}} Block.super
Một đoạn trong thư mục template của dự án, thuộc khối chính khác
{% Enblock%}
HTML kết quả hiển thị khi trang / page.html đã được nạp sẽ là:
Tiêu đề
Một đoạn trong app2, mà muốn được trên đầu trang của các khối chính app1 của
Một đoạn trong app1
Một đoạn trong thư mục template của dự án, thuộc khối chính khác
Copyright 2012
Đối với một phân tích chi tiết về lý do tại sao bạn sẽ sử dụng phương pháp này, làm thế nào nó hoạt động, và cách tiếp cận khác, đọc bài đăng blog ban đầu của tôi: Thông tư Template Inheritance cho Django.
Cài đặt
Cách dễ nhất để cài đặt django-overextends là trực tiếp từ PyPi sử dụng pip bằng cách chạy lệnh sau:
& Nbsp; pip cài đặt -U django-overextends
Nếu không, bạn có thể tải về django-overextends và cài đặt nó trực tiếp từ nguồn:
& Nbsp; python setup.py cài đặt
Cấu hình dự án
Sau khi cài đặt bạn có thể cấu hình các dự án của bạn để sử dụng django-overextends bằng cách thêm các ứng dụng overextends đến INSTALLED_APPS trong cài đặt mô-đun của dự án của bạn:
INSTALLED_APPS = (
& Nbsp; # ... các ứng dụng khác ở đây ...
& Nbsp; 'overextends',
)
Lưu ý rằng trong khi mở rộng thẻ được cung cấp bởi các overextends.templatetags.overextends_tags gói, nó là cần thiết để sử dụng {% tải overextends_tags%} trong các mẫu của bạn. Giống như mở rộng thẻ, overextends phải là khóa đầu tiên trong mẫu của bạn, vì vậy nó được tự động thêm vào xây dựng-in thẻ mẫu của Django, loại bỏ sự cần thiết phải nạp thẻ thư viện của nó trong mỗi mẫu.
Yêu cầu :
- Python
- Django
Bình luận không