ইন mysite/admin.py
, এর একটি উপ-শ্রেণি তৈরি করুন AdminSite
:
from django.contrib.admin import AdminSite
class CustomAdminSite(AdminSite):
# set values for `site_header`, `site_title`, `index_title` etc.
site_header = 'Custom Admin Site'
...
# extend / override admin views, such as `index()`
def index(self, request, extra_context=None):
extra_context = extra_context or {}
# do whatever you want to do and save the values in `extra_context`
extra_context['world'] = 'Earth'
return super(CustomAdminSite, self).index(request, extra_context)
custom_admin_site = CustomAdminSite()
আপনার কাস্টমাইজড অ্যাডমিন সাইটে (যদি আপনি চান) তা প্রদর্শন করতে আপনার অ্যাপ্লিকেশনগুলির custom_admin_site
মধ্যে আমদানি করার বিষয়টি নিশ্চিত করুন admin.py
এবং এতে আপনার মডেলগুলি নিবন্ধ করুন।
ইন mysite/apps.py
, এর একটি উপ-বর্গ তৈরি AdminConfig
এবং সেট default_site
করার admin.CustomAdminSite
পূর্ববর্তী ধাপে থেকে:
from django.contrib.admin.apps import AdminConfig
class CustomAdminConfig(AdminConfig):
default_site = 'admin.CustomAdminSite'
ইন mysite/settings.py
, django.admin.site
এর INSTALLED_APPS
সাথে প্রতিস্থাপন করুন apps.CustomAdminConfig
(পূর্ববর্তী পদক্ষেপ থেকে আপনার কাস্টম অ্যাডমিন অ্যাপ্লিকেশন কনফিগারেশন)।
ইন mysite/urls.py
, admin.site.urls
অ্যাডমিন URL থেকে প্রতিস্থাপন করুনcustom_admin_site.urls
from .admin import custom_admin_site
urlpatterns = [
...
path('admin/', custom_admin_site.urls),
# for Django 1.x versions: url(r'^admin/', include(custom_admin_site.urls)),
...
]
আপনি আপনার পরিবর্তন করতে চান টেমপ্লেট তৈরি করুন templates
ডিরেক্টরির, উল্লেখিত ডিফল্ট জ্যাঙ্গো অ্যাডমিন টেমপ্লেট ডিরেক্টরি গঠন বজায় রাখার ডক্স । উদাহরণস্বরূপ, আপনি যদি সংশোধন admin/index.html
করছিলেন তবে ফাইলটি তৈরি করুন templates/admin/index.html
।
বিদ্যমান সমস্ত টেমপ্লেটগুলি এইভাবে সংশোধন করা যেতে পারে এবং তাদের নাম এবং কাঠামো জ্যাঙ্গোর উত্স কোডে পাওয়া যাবে ।
এখন আপনি হয় স্ক্র্যাচ থেকে লিখে টেমপ্লেটটিকে ওভাররাইড করতে পারেন বা এটি প্রসারিত করতে পারেন এবং তারপরে নির্দিষ্ট ব্লকগুলিকে ওভাররাইড / প্রসারিত করতে পারেন।
উদাহরণস্বরূপ, আপনি যদি সমস্ত কিছু যেমন রয়েছে তেমন রাখতে চান তবে content
ব্লকটিকে ওভাররাইড করতে চান (যা সূচী পৃষ্ঠায় আপনি যে অ্যাপ্লিকেশনগুলি এবং তাদের মডেলগুলি তালিকাভুক্ত করেছেন যেগুলি তালিকাভুক্ত করে) তালিকাভুক্ত করুন templates/admin/index.html
:
{% extends 'admin/index.html' %}
{% block content %}
<h1>
Hello, {{ world }}!
</h1>
{% endblock %}
একটি ব্লকের মূল বিষয়বস্তু সংরক্ষণ করার জন্য, {{ block.super }}
আপনি যেখানেই মূল বিষয়বস্তু প্রদর্শিত হতে চান সেখানে যুক্ত করুন :
{% extends 'admin/index.html' %}
{% block content %}
<h1>
Hello, {{ world }}!
</h1>
{{ block.super }}
{% endblock %}
এছাড়াও extrastyle
এবং extrahead
ব্লকগুলি সংশোধন করে আপনি কাস্টম শৈলী এবং স্ক্রিপ্টগুলি যুক্ত করতে পারেন ।