বেসিক জ্যাঙ্গো অ্যাডমিন টেম্পলেটগুলি কীভাবে ওভাররাইড এবং প্রসারিত করা যায়?


126

একই সাথে এটি প্রসারিত করার সময় আমি কীভাবে কোনও প্রশাসক টেমপ্লেটকে ওভাররাইড করব ( https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing দেখুন) -অ্যান-অ্যাডমিন-টেম্পলেট )?

প্রথম - আমি জানি যে এই প্রশ্নটি আগে জিজ্ঞাসা করা হয়েছে এবং এর উত্তর দেওয়া হয়েছে (দেখুন জ্যাঙ্গো: একটি অ্যাপ্লিকেশন টেম্পলেটটি ওভাররাইডিং এবং প্রসারিত দেখুন ) তবে উত্তর হিসাবে বলা হয়েছে আপনি যদি অ্যাপ_ডাইরেক্টরি টেম্পলেট লোডার ব্যবহার করেন তবে এটি সরাসরি প্রযোজ্য নয় (যা বেশিরভাগ ক্ষেত্রে সময়)।

আমার বর্তমান কাজটি হ'ল অ্যাডমিন টেমপ্লেটগুলি থেকে সরাসরি প্রসারিত না করে অনুলিপি তৈরি করা এবং সেগুলি থেকে প্রসারিত করা। এটি দুর্দান্ত কাজ করে তবে এটি সত্যিই বিভ্রান্ত হয় এবং যখন প্রশাসক টেম্পলেটগুলি পরিবর্তন হয় তখন অতিরিক্ত কাজ যুক্ত করে।

এটি টেমপ্লেটগুলির জন্য কিছু কাস্টম এক্সটেনড-ট্যাগের কথা ভাবতে পারে তবে ইতিমধ্যে যদি কোনও সমাধান থাকে তবে আমি চাকাটি পুনর্নির্মাণ করতে চাই না।

একদিকে নোট: কেউ কি জানেন যে এই সমস্যাটি নিজেই জাঙ্গো দ্বারা সমাধান করা হবে?


1
অ্যাডমিন টেমপ্লেটগুলি অনুলিপি করা, সেগুলি প্রসারিত করা এবং ব্লকগুলি ওভাররাইডিং / যুক্তগুলি যুক্ত করা সর্বাধিক দক্ষ, যদিও বর্তমান জাজানো অবস্থার পরিপ্রেক্ষিতে অনুকূল কর্মপ্রবাহ নয়। আপনি এটির সাথে কাজ করার তিন বছরে যা করার চেষ্টা করছেন তা করার আমি অন্য কোনও উপায়ে দেখিনি :)
ব্র্যান্ডন

ভাল - আমি জানি না এটি ভাল জিনিস কিনা না তবে আপনার মতো কমপক্ষে লোকেরাও এই সিদ্ধান্তে পৌঁছেছে। যে শুনতে ভাল. :)
সেমেল

উত্তর:


101

আপডেট :

আপনার জাজানো সংস্করণের জন্য দস্তাবেজগুলি পড়ুন। যেমন

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#admin-overriding-templates https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#admin-overriding -templates

২০১১ সালের আসল উত্তর:

প্রায় দেড় বছর আগে আমার একই সমস্যা ছিল এবং আমি djangosnippets.org এ একটি দুর্দান্ত টেম্পলেট লোডার পেয়েছি যা এটি সহজ করে তোলে। এটি আপনাকে একটি নির্দিষ্ট অ্যাপ্লিকেশনটিতে কোনও টেম্পলেট প্রসারিত করার অনুমতি দেয়, আপনাকে প্রশাসক অ্যাপ্লিকেশন থেকে প্রশাসক / সূচক html টেমপ্লেট প্রসারিত করার জন্য আপনার নিজের অ্যাডমিন / সূচক। Html তৈরি করার ক্ষমতা দেয় । এটার মত:

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{block.super}}
    <div>
        <h1>Extra links</h1>
        <a href="https://stackoverflow.com/admin/extra/">My extra link</a>
    </div>
{% endblock %}

আমি আমার ওয়েবসাইটে ব্লগ পোস্টে এই টেমপ্লেট লোডারটি কীভাবে ব্যবহার করতে পারি তার একটি পূর্ণ উদাহরণ দিয়েছি।


18
রেফারেন্সের জন্য; প্রশ্নের স্নিপেটটি জ্যাঙ্গো অ্যাপে রূপান্তরিত হয়েছে, এবং পাইপাইতে (পিপ / ইজি_ইনস্টল) জ্যাঙ্গো-অ্যাপটেমপ্ল্লেট হিসাবে উপলব্ধ: pypi.python.org/pypi/django-apptemplates
রোমেল্ক

9
মাত্র ১০০% স্পষ্ট করে বলা: উপরের সমাধান জ্যাঙ্গোর সাম্প্রতিক সংস্করণগুলির জন্য কম দীর্ঘ কাজ করবে না (কমপক্ষে ১.৪), স্ক্রিপ্টটি যে ফাংশনটি ব্যবহার করে তার মধ্যে একটি হ্রাস পেয়েছে। আপনি এখানে আপডেট হওয়া উত্সটি খুঁজে পেতে পারেন
ওল্ডটাইনফয়েল

2
নোট করুন যে জাঙ্গো ১.৮ এর সাহায্যে এটি এখনও কাজ করবে তবে একটি বিশেষ উপায়ে সেটআপ করা দরকার ( উদাহরণ হিসাবে অ্যাপ_নামস্পেস.লুডার সেটআপ )। জ্যাঙ্গো-অ্যাপ-নেমস্পেস-টেম্পলেট-লোডারওdjango-apptemplates যদি এটি একদিন কাজ বন্ধ করে দেয় তবে তার একটি কার্যকরী বিকল্প ।
পিটারিনো

পুরানো জ্যাঙ্গো সংস্করণগুলির জন্য এই উত্তরটি খুব ভাল ছিল। তবে এখন পর্যন্ত চেংয়ের আরেকটি উত্তর আরও প্রাসঙ্গিক। stackoverflow.com/a/29997719/7344164
সফটওয়্যারইংগুমার

70

জাজানো ১.৮ এখনকার রিলিজ হিসাবে, আপনার প্রকল্প ফোল্ডারে অ্যাডমিন / টেমপ্লেটগুলি অনুলিপি করতে বা উপরের উত্তরগুলির পরামর্শ অনুসারে মিডলওয়্যার ইনস্টল করার দরকার নেই। এখানে কি হয়:

  1. নিম্নলিখিত গাছের কাঠামো তৈরি করুন ( অফিসিয়াল ডকুমেন্টেশন দ্বারা প্রস্তাবিত )

    your_project
         |-- your_project/
         |-- myapp/
         |-- templates/
              |-- admin/
                  |-- myapp/
                      |-- change_form.html  <- do not misspell this

দ্রষ্টব্য : এই ফাইলটির অবস্থান গুরুত্বপূর্ণ নয়। আপনি এটিকে আপনার অ্যাপ্লিকেশনটির ভিতরে রাখতে পারেন এবং এটি এখনও কার্যকর হবে। যতক্ষণ না এর অবস্থানটি জাঙ্গো আবিষ্কার করতে পারে। সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল এইচটিএমএল ফাইলের নামটি জ্যাঙ্গোর সরবরাহিত মূল HTML ফাইলের নামের মতোই হতে হবে।

  1. আপনার এই টেমপ্লেটটি পথ যোগ settings.py :

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')], # <- add this line
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
  2. নামটি শনাক্ত করুন এবং আপনি ওভাররাইড করতে চান ব্লক করুন। এটি জাঙ্গোর প্রশাসক / টেমপ্লেট ডিরেক্টরিগুলি অনুসন্ধান করে করা হয়। আমি ভার্চুয়ালেনভ ব্যবহার করছি, তাই আমার জন্য, পথটি এখানে:

    ~/.virtualenvs/edge/lib/python2.7/site-packages/django/contrib/admin/templates/admin

এই উদাহরণে, আমি যুক্ত হওয়া নতুন ব্যবহারকারী ফর্মটি সংশোধন করতে চাই। এই দর্শনটির জন্য টেম্পলেটটির দায়বদ্ধতা হ'ল চেঞ্জ_ফর্মHtml । চেঞ্জ_ফর্ম। Html খুলুন এবং আপনি যে extend% ব্লক% extend প্রসারিত করতে চান তা সন্ধান করুন।

  1. ইন আপনার change_form.html , লেখ somethings এটি পছন্দ:

    {% extends "admin/change_form.html" %}
    {% block field_sets %}
         {# your modification here #}
    {% endblock %}
  2. আপনার পৃষ্ঠাটি লোড করুন এবং আপনার পরিবর্তনগুলি দেখা উচিত


সমস্ত ব্লক অনুলিপি না করে মূল "index.html" টেমপ্লেটটি প্রসারিত করার জন্য এটি এখনও পর্যাপ্ত নয়। একটি সমাধান হ'ল ../"এক্সটেন্ডেড" পথে কিছু লিখতে এবং মূল পথটিকে আরও অনন্য বলে উল্লেখ করা {% extends "../../admin/templates/admin/index.html" %}উত্তরের লিঙ্ক
hynekcer

1
আমি মনে করি টেম্পলেটগুলিতে আমাদের 'ডিআরএস' ব্যবহার করা উচিত: [os.path.join (BASE_DIR, 'টেমপ্লেট')]],
রাউল রেয়েস

এটি থ্রেডের ধরণ যা এসও এর ত্রুটিটিকে পুরোপুরি চিত্রিত করে। একটি কাঠামো আপডেট হয়ে যায় এবং প্রশ্নটি আর প্রাসঙ্গিক নয়, এটি আসলে সঠিক পথ থেকে বিরত a এখানে দুর্দান্ত উত্তর। আরটিএফএম বাচ্চারা।
ডেরেক অ্যাডায়ার

এই উত্তরের জন্য ধন্যবাদ। "এই ফাইলটির অবস্থান গুরুত্বপূর্ণ নয়।" বাদে সবকিছু দুর্দান্ত কাজ করেছে।
জাসওয়ানথ মণিগুন্ডন

54

যদি আপনার ওভাররাইটের প্রয়োজন হয় তবে আপনি admin/index.htmlএর সূচক_পর্ব পরামিতি সেট করতে পারেন AdminSite

যেমন

# urls.py
...
from django.contrib import admin

admin.site.index_template = 'admin/my_custom_index.html'
admin.autodiscover()

এবং আপনার টেম্পলেটটি এতে রাখুন <appname>/templates/admin/my_custom_index.html


5
উজ্জ্বল! এটি করা আপনাকে তারপরে {% extends "admin/index.html" %}my_custom_index.html থেকে করতে এবং জাঙ্গো অ্যাডমিন টেম্পলেটটি অনুলিপি না করেই রেফারেন্স দিতে দেয়। ধন্যবাদ.
mattmc3

3
@ সিমেলটিকে এটিকে সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত, যেহেতু এটি সহজতম পদ্ধতির যা অন্তর্নির্মিত জাঙ্গো বৈশিষ্ট্যগুলি ব্যবহার করে এবং কাস্টম টেম্পলেট লোডার ব্যবহারের প্রয়োজন হয় না।
মিঃকোলস

17

সঙ্গে django1.5 (কমপক্ষে) আপনি আপনি একটি নির্দিষ্ট জন্য ব্যবহার করতে চান টেমপ্লেট বর্ণনা করতে পারেনmodeladmin

দেখতে https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#custom-template-options

আপনি যেমন কিছু করতে পারেন

class Myadmin(admin.ModelAdmin):
    change_form_template = 'change_form.htm'

change_form.htmlএকটি সহজ এইচটিএমএল টেমপ্লেট প্রসারিত হওয়ার সাথে admin/change_form.html(আপনি যদি এটি স্ক্র্যাচ থেকে করতে চান তবে না)


9

চেংসের উত্তর সঠিক, অ্যাডমিন ডক্স অনুসারে প্রতিটি অ্যাডমিন টেমপ্লেট এইভাবে ওভাররাইট করা যায় না: https://docs.djangoproject.com/en/1.9/ref/contrib/admin/#overriding-admin-templates

টেমপ্লেটগুলি যা অ্যাপ্লিকেশন বা মডেল অনুযায়ী ওভাররাইড করা যেতে পারে

অবদান / অ্যাডমিন / টেম্পলেট / অ্যাডমিনের প্রতিটি টেমপ্লেট প্রতি অ্যাপ্লিকেশন বা প্রতি মডেলকে ওভাররাইড করা যাবে না। নিম্নলিখিত পারেন:

app_index.html
change_form.html
change_list.html
delete_confirmation.html
object_history.html

এই টেম্পলেটগুলির জন্য যেগুলি এইভাবে ওভাররাইড করা যায় না, আপনি এখনও তাদের সম্পূর্ণ প্রকল্পের জন্য সেগুলি ওভাররাইড করতে পারেন। শুধু স্থান আপনার নতুন সংস্করণ টেমপ্লেট / অ্যাডমিন ডিরেক্টরি। এটি কাস্টম 404 এবং 500 পৃষ্ঠা তৈরি করতে বিশেষভাবে কার্যকর

আমাকে প্রশাসকের লগইন। Html ওভাররাইট করতে হয়েছিল এবং তাই এই ফোল্ডারটির কাঠামোটিতে ওভাররাইট টেম্পলেটটি লিখতে হয়েছিল:

your_project
 |-- your_project/
 |-- myapp/
 |-- templates/
      |-- admin/
          |-- login.html  <- do not misspell this

(অ্যাডমিনে মায়াপ অ্যাপ সাবফোল্ডার ব্যতীত) চেংয়ের পোস্টে মন্তব্য করার জন্য আমার পর্যাপ্ত খ্যাতি নেই, এ কারণেই আমাকে এটি নতুন উত্তর হিসাবে লিখতে হয়েছিল।


ফিডব্যাক হেইনেকারের জন্য আপনাকে ধন্যবাদ আমি আশা করি আমার উত্তরটি আরও স্পষ্ট এবং এখনের চেয়ে বেশি সোজা।
ম্যাটিয়াস

হ্যাঁ, এটি জেনে রাখা দরকারী যে টেমপ্লেটগুলি অ্যাপ্লিকেশন স্তরে allyচ্ছিকভাবে পরিবর্তন করা গেলেও প্রকল্প পর্যায়ে কাস্টমাইজ করা যায়।
hynekcer

5

এটি করার সর্বোত্তম উপায় হ'ল জাজানো অ্যাডমিন টেম্পলেটগুলি আপনার প্রকল্পের ভিতরে রাখা। সুতরাং আপনার টেমপ্লেটগুলি templates/adminযখন স্টক জ্যাঙ্গো অ্যাডমিন টেম্পলেটগুলি বলবে তখন তা থাকবে template/django_admin। তারপরে, আপনি নিম্নলিখিতগুলির মতো কিছু করতে পারেন:

টেমপ্লেট / অ্যাডমিন / change_form.html

{% extends 'django_admin/change_form.html' %}

Your stuff here

আপনি যদি স্টক টেম্পলেটগুলি আপ টু ডেট রাখার বিষয়ে উদ্বিগ্ন হন তবে আপনি সেগুলিকে এসএনএন এক্সটার্নাল বা এর সাথে অন্তর্ভুক্ত করতে পারেন।


এসএনএন এক্সটার্নাল ব্যবহার করা একটি দুর্দান্ত ধারণা। সমস্যাটি যেটি প্রবর্তন করে তা হ'ল আমার সমস্ত অনুবাদক সেই সমস্ত টেম্পলেট অনুবাদ করতে চলেছেন (কারণ মেকমেসেজগুলি সমস্ত অ্যাডমিন টেম্পলেটগুলি থেকে অনুবাদ স্ট্রিং সংগ্রহ করবে) যা আপনি একাধিক ভাষা নিয়ে কাজ করলে অনেকগুলি অতিরিক্ত কাজ যুক্ত করে। সম্ভবত মেকমেসেজগুলি থেকে এই টেমপ্লেটগুলি বাদ দেওয়ার কোনও উপায় আছে?
সেমেল

এর --ignoreসাথে যুক্তিটি ব্যবহার করুন makemessages। দেখুন: docs.djangoproject.com/en/dev/ref/django-admin/#makemessages
ক্রিস প্র্যাট

আমি মনে করি অন্য উত্তরটি আমার প্রয়োজনের সাথে আরও ভাল ফিট করে। তবে আমি আপনার সমাধানটি পছন্দ করি এবং আপনি যদি আপনার টেমপ্লেট লোডারগুলির সাথে গোলযোগ না করতে চান তবে এটি একটি ভাল বিকল্প বলে মনে করি।
সেমেল

5

আমি ডিফল্ট অ্যাডমিন টেমপ্লেটগুলিকে ওভাররাইড / প্রসারিত করার জন্য প্রয়োজনীয় সমস্ত তথ্য থাকা সরকারী জ্যাঙ্গো ডক্সে একটিও উত্তর বা একটি অংশ খুঁজে পাইনি, সুতরাং আমি এই উত্তরটি একটি সম্পূর্ণ গাইড হিসাবে লিখছি, আশা করি যে এটি সহায়ক হবে ing ভবিষ্যতে অন্যদের জন্য।

মানক জ্যাঙ্গো প্রকল্প কাঠামো ধরে নেওয়া:

mysite-container/         # project container directory
    manage.py
    mysite/               # project package
        __init__.py
        admin.py
        apps.py
        settings.py
        urls.py
        wsgi.py
    app1/
    app2/
    ...
    static/
    templates/

আপনার যা করা দরকার তা এখানে:

  1. ইন 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এবং এতে আপনার মডেলগুলি নিবন্ধ করুন।

  2. ইন mysite/apps.py, এর একটি উপ-বর্গ তৈরি AdminConfigএবং সেট default_siteকরার admin.CustomAdminSiteপূর্ববর্তী ধাপে থেকে:

    from django.contrib.admin.apps import AdminConfig
    
    
    class CustomAdminConfig(AdminConfig):
        default_site = 'admin.CustomAdminSite'
  3. ইন mysite/settings.py, django.admin.siteএর INSTALLED_APPSসাথে প্রতিস্থাপন করুন apps.CustomAdminConfig(পূর্ববর্তী পদক্ষেপ থেকে আপনার কাস্টম অ্যাডমিন অ্যাপ্লিকেশন কনফিগারেশন)।

  4. ইন 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)),
        ...
    ]
  5. আপনি আপনার পরিবর্তন করতে চান টেমপ্লেট তৈরি করুন templatesডিরেক্টরির, উল্লেখিত ডিফল্ট জ্যাঙ্গো অ্যাডমিন টেমপ্লেট ডিরেক্টরি গঠন বজায় রাখার ডক্স । উদাহরণস্বরূপ, আপনি যদি সংশোধন admin/index.htmlকরছিলেন তবে ফাইলটি তৈরি করুন templates/admin/index.html

    বিদ্যমান সমস্ত টেমপ্লেটগুলি এইভাবে সংশোধন করা যেতে পারে এবং তাদের নাম এবং কাঠামো জ্যাঙ্গোর উত্স কোডে পাওয়া যাবে ।

  6. এখন আপনি হয় স্ক্র্যাচ থেকে লিখে টেমপ্লেটটিকে ওভাররাইড করতে পারেন বা এটি প্রসারিত করতে পারেন এবং তারপরে নির্দিষ্ট ব্লকগুলিকে ওভাররাইড / প্রসারিত করতে পারেন।

    উদাহরণস্বরূপ, আপনি যদি সমস্ত কিছু যেমন রয়েছে তেমন রাখতে চান তবে 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ব্লকগুলি সংশোধন করে আপনি কাস্টম শৈলী এবং স্ক্রিপ্টগুলি যুক্ত করতে পারেন ।


এই সম্পর্কে আপনার কাছে কোনও উত্স বা ডকুমেন্টেশন আছে?
মেরি

পঞ্চম পয়েন্টে আমি দুটি উল্লেখ যুক্ত করেছি, না, আমার আর কিছু নেই।
ফাহিল

1

আমি ক্রিস প্রেটের সাথে একমত তবে আমি মনে করি যে অ্যাডমিন টেমপ্লেটগুলি যেখানে অ্যাডমিন টেম্পলেটগুলি রাখে সেখানে মূল জাজানো ফোল্ডারে সিমলিংক তৈরি করা ভাল:

ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/ templates/django_admin

এবং আপনি দেখতে পাচ্ছেন এটি পাইথন সংস্করণ এবং জ্যাঙ্গো ইনস্টল করা ফোল্ডারের উপর নির্ভর করে। সুতরাং ভবিষ্যতে বা কোনও প্রোডাকশন সার্ভারে আপনার পাথ পরিবর্তন করার প্রয়োজন হতে পারে।


0

এই সাইটের একটি সাধারণ সমাধান ছিল যা আমার জ্যাঙ্গো 1.7 কনফিগারেশনের সাথে কাজ করে।

প্রথম: আপনার ইনস্টলিত জ্যাঙ্গো টেম্পলেটগুলিতে আপনার প্রকল্পের টেমপ্লেট / ডিরেক্টরিতে প্রশাসক_এসসিআর নামের একটি সিমিলিংক তৈরি করুন । আমার জন্য ড্রিমহোস্টে ভার্চুয়ালেনভ ব্যবহার করে, আমার "উত্স" জ্যাঙ্গো অ্যাডমিন টেম্পলেটগুলি ছিল:

~/virtualenvs/mydomain/lib/python2.7/site-packages/django/contrib/admin/templates/admin

দ্বিতীয়: টেমপ্লেটগুলিতে একটি প্রশাসক ডিরেক্টরি তৈরি করুন /

সুতরাং আমার প্রকল্পের টেমপ্লেট / ডিরেক্টরিটি এখন এর মতো দেখায়:

/templates/
   admin
   admin_src -> [to django source]
   base.html
   index.html
   sitemap.xml
   etc...

তৃতীয়: আপনার নতুন টেমপ্লেট / অ্যাডমিন / ডিরেক্টরিতে এই বিষয়বস্তু দিয়ে একটি বেস html ফাইল তৈরি করুন:

{% extends "admin_src/base.html" %}

{% block extrahead %}
<link rel='shortcut icon' href='{{ STATIC_URL }}img/favicon-admin.ico' />
{% endblock %}

চতুর্থ: আপনার স্থির মূল আইএমজি ফোল্ডারে আপনার প্রশাসক ফেভিকন-অ্যাডমিন.ইকো যুক্ত করুন।

সম্পন্ন. সহজ।


0

অ্যাপ্লিকেশন সূচকের জন্য url.py এর মতো সাধারণ পাই ফাইলটিতে এই লাইনটি যুক্ত করুন

admin.site.index_template = 'admin/custom_index.html'

অ্যাপ্লিকেশন মডিউল সূচীর জন্য: অ্যাডমিন.পিকে এই লাইনটি যুক্ত করুন

admin.AdminSite.app_index_template = "servers/servers-home.html"

পরিবর্তনের তালিকার জন্য: প্রশাসনিক শ্রেণিতে এই লাইনটি যুক্ত করুন:

change_list_template = "servers/servers_changelist.html"

অ্যাপ্লিকেশন মডিউল ফর্ম টেমপ্লেটের জন্য: আপনার প্রশাসক শ্রেণিতে এই লাইনটি যুক্ত করুন

change_form_template = "servers/server_changeform.html"

ইত্যাদি এবং একই অ্যাডমিনের মডিউল ক্লাসে অন্যান্য সন্ধান করুন


-1

আপনি জ্যাঙ্গো -ওভারেক্সটেন্ডস ব্যবহার করতে পারেন , যা জ্যাঙ্গোর জন্য বিজ্ঞপ্তি টেম্পলেট উত্তরাধিকার সরবরাহ করে।

এটি মেজানাইন সিএমএস থেকে এসেছে , সেখান থেকে স্টিফেন এটিকে স্ট্যান্ডেলোন জ্যাঙ্গো এক্সটেনশনে এনেছে।

আরও ইনফসগুলি আপনি মেজানাইন ডক্সের অভ্যন্তরে "ওভাররাইডিং বনাম প্রসারিত টেম্পলেটগুলি" (http: /mezzanine.jupo.org/docs/content-architecture.html#overriding-vs-extending-templates) এ খুঁজে পান।

গভীরতর অন্তর্দৃষ্টিগুলির জন্য স্টিফেন্স ব্লগটি "জাজানোর জন্য বিজ্ঞপ্তি টেম্পলেট উত্তরাধিকার" দেখুন (http: /blog.jupo.org/2012/05/17/circular-template-inheritance- for-django)।

এবং গুগল গ্রুপগুলিতে আলোচনা (https: /groups.google.com/forum / #! বিষয় / mezzanine-ব্যবহারকারী / sUydcf_IZkQ) যা এই বৈশিষ্ট্যটির বিকাশ শুরু করেছিল।

বিঃদ্রঃ:

আমার কাছে 2 টির বেশি লিঙ্ক যুক্ত করার খ্যাতি নেই। তবে আমি মনে করি লিঙ্কগুলি আকর্ষণীয় পটভূমির তথ্য সরবরাহ করে। সুতরাং আমি "http (গুলি):" এর পরে স্ল্যাশ ফেলে রেখেছি। হয়তো আরও ভাল খ্যাতি সম্পন্ন কেউ লিঙ্কগুলি মেরামত করতে এবং এই নোটটি সরাতে পারেন।


জ্যাঙ্গো ১.৯ থেকে, এই প্রকল্পটি প্রাসঙ্গিক নয়, রক্ষণাবেক্ষণকারী কেবল এটি বিজ্ঞাপন দিচ্ছেন না, কোড . djangoproject.com/ticket/15053 এবং github.com/stephenmcd/django- সার্বভৌম ক্ষেত্র / পুল / see37 দেখুন । কোন অ্যাপ্লিকেশন থেকে কোনও টেমপ্লেট লোড করা হয়েছে তার সম্পূর্ণ নিয়ন্ত্রণ নিতে, সেখানে জাঙ্গো-অ্যাপটেমপ্লেটস এবং জ্যাঙ্গো-অ্যাপ-নেমস্পেস-টেম্পলেট-লোডার রয়েছে, যা আপনি যদি কোনও অ্যাপ্লিকেশন থেকে অন্য অ্যাপ্লিকেশনটিতে প্রসারিত করতে চান তবে উভয়ই প্রাসঙ্গিক।
বেনজমিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.