Mengatasi dan Memanjangkan Templat Pentadbiran Django Serentak
Mengatasi templat pentadbir Django ialah keperluan biasa untuk menyesuaikan antara muka pentadbiran. Walau bagaimanapun, anda mungkin menghadapi dilema apabila anda ingin membatalkan dan melanjutkan templat, sambil turut memanfaatkan pemuat templat AppDirectories.
Mengatasi lwn. Melanjutkan
Dalam Django , mengatasi templat melibatkan penggantian sepenuhnya fail templat sedia ada, manakala pelanjutan membolehkan anda menambah kandungan pada blok tertentu dalam templat.
Cabaran dengan AppDirectories Template Loader
The Pemuat templat AppDirectories memberikan cabaran apabila mengatasi dan melanjutkan templat pentadbir. Apabila menggunakan pemuat ini, Django menjangkakan templat lanjutan berada dalam direktori yang sama dengan templat asal. Ini boleh menjadi masalah jika templat pentadbir terletak dalam aplikasi yang berbeza.
Penyelesaian Sedia Ada
Pemuat Templat Tersuai:
Penyelesaian yang disyorkan ialah menggunakan pemuat templat tersuai yang menyokong pelanjutan templat merentas direktori apl. Satu pemuat sedemikian tersedia di DjangoSnippets.org.
Menyesuaikan Pemuat Templat Django:
Pilihan lain ialah untuk menyesuaikan pemuat templat AppDirectories Django untuk membenarkan melanjutkan templat daripada apl tertentu. Ini melibatkan mencipta kelas pemuat templat tersuai yang mewarisi daripada pemuat AppDirectories dan mengubah suai tingkah lakunya.
Rancangan Masa Depan Django
Sehingga tulisan ini ditulis, Django tidak menyokong secara asli meluaskan templat merentas direktori aplikasi. Walau bagaimanapun, terdapat isu terbuka pada GitHub yang mencadangkan ciri ini. Jika dilaksanakan, ia akan memudahkan proses mengatasi dan melanjutkan templat pentadbir Django dengan ketara.
Contoh Penggunaan dengan Pemuat Tersuai:
Menggunakan pemuat templat tersuai yang dinyatakan di atas, anda boleh melaksanakan perkara berikut dalam templat anda:
{% extends "admin:admin/index.html" %} {% block sidebar %} {{block.super}} <div> <h1>Extra links</h1> <a href="/admin/extra/">My extra link</a> </div> {% endblock %}
Kod ini memanjangkan templat indeks pentadbir dengan kandungan bar sisi tambahan, mengatasi dan melanjutkan templat asal dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi dan Memanjangkan Templat Pentadbiran Django dengan Pemuat Templat AppDirectories?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!