জ্যাঙ্গো অ্যাডমিন - শিরোনাম 'জ্যাঙ্গো প্রশাসন' পাঠ্য পরিবর্তন করুন


201

জ্যাঙ্গো অ্যাডমিন হেডারে কীভাবে একজন 'জাঙ্গো প্রশাসন' পাঠ্য পরিবর্তন করতে পারেন?

এটি "অ্যাডমিনকে অনুকূলিতকরণ" ডকুমেন্টেশনে আচ্ছাদিত বলে মনে হচ্ছে না।


এটি টিউটোরিয়ালে আচ্ছাদিত ।
djvg

উত্তর:


139

আপডেট : আপনি জ্যাঙ্গো 1.7+ ব্যবহার করছেন তবে নীচের উত্তরটি দেখুন


২০১১ সালের আসল উত্তর: এটি করতে আপনার নিজের অ্যাডমিন base_site.htmlটেম্পলেট তৈরি করতে হবে। সবচেয়ে সহজ উপায় ফাইলটি তৈরি করা:

/<projectdir>/templates/admin/base_site.html

আপনার কাস্টম শিরোনামটি বাদ দিয়ে এটি আসলটিরbase_site.html অনুলিপি হওয়া উচিত :

{% block branding %}
<h1 id="site-name">{% trans 'my cool admin console' %}</h1>
{% endblock %}

এটি কাজ করার জন্য আপনার প্রকল্পের সঠিক সেটিংস থাকা দরকার settings.py:

  • নিশ্চিত করুন যে এতে /projectdir/templates/যুক্ত হয়েছে TEMPLATE_DIRS
  • নিশ্চিত করুন যে এতে django.template.loaders.filesystem.Loaderযুক্ত হয়েছে TEMPLATE_LOADERS

আরও তথ্যের জন্য ডক্স দেখুনsettings.py


77
এছাড়াও মনে রাখবেন আপনি যা করতে পারেন যে {% extends "admin/base.html" %}মধ্যে /<projectdir>/templates/admin/base_site.html, এবং কেবল ব্লক (গুলি) আপনার যা দরকার, অর্থাৎ পুনরায় সংজ্ঞায়িত {% block branding %}...{% endblock %}
আরনাউদ

12
এমনকি বেশ পুরানো হলেও, আমি যুক্ত করতে চাই যে আপনি যেখানে ইনস্টলড_এপিপিএস-এ 'django.contrib.admin' এর আগে এই টেমপ্লেটটি সংজ্ঞায়িত করেছেন সেখানে আপনার অ্যাপ্লিকেশনটি অবশ্যই রাখতে হবে
ডিআরসি

1
জাঙ্গো ১.6 অজগর ৩.৩-তে, আপনি যখন TEMPLATE_LOADERসেটিংসটি যোগ করবেন না তখনও উপরেরগুলি কাজ করে। দেখে TEMPLATE_DIRমনে হচ্ছে যথেষ্ট
লুফিক

12
এটি 1.7 হিসাবে পুরানো। রেটো আইবারসোল্ডের উত্তর দেখুন।
অ্যান্ড্রু বি

5
Url.py অ্যাডমিন.সাইট.সাইট_হেডার = 'মাই অ্যাডমিনিস্ট্রেশন' অ্যাডমিন.সাইট.ইন্ডেক্স_টাইটেল = ('আমার অ্যাডমিন') অ্যাডমিন.সাইট.সাইট_টাইটেল = ('আমার অ্যাডমিন পৃষ্ঠা') এ চেষ্টা করুন
আশীষ গুপ্ত

352

জ্যাঙ্গো ১.7 হিসাবে আপনার টেমপ্লেটগুলি ওভাররাইড করার দরকার নেই। আপনি এখন বাস্তবায়ন করতে পারে site_header , site_titleএবং index_titleএকটি কাস্টম উপর বৈশিষ্ট্যাবলী AdminSite অর্ডার সহজে অ্যাডমিন সাইটের শিরোনামটি এবং হেডার টেক্সট পরিবর্তন হবে। একটি অ্যাডমিনসাইট সাবক্লাস তৈরি করুন এবং আপনার দৃষ্টান্তটি আপনার ইউআরএলকনফে আবদ্ধ করুন:

admin.py:

from django.contrib.admin import AdminSite
from django.utils.translation import ugettext_lazy

class MyAdminSite(AdminSite):
    # Text to put at the end of each page's <title>.
    site_title = ugettext_lazy('My site admin')

    # Text to put in each page's <h1> (and above login form).
    site_header = ugettext_lazy('My administration')

    # Text to put at the top of the admin index page.
    index_title = ugettext_lazy('Site administration')

admin_site = MyAdminSite()

urls.py:

from django.conf.urls import patterns, include
from myproject.admin import admin_site

urlpatterns = patterns('',
    (r'^myadmin/', include(admin_site.urls)),
)

আপডেট : অক্সফেন দ্বারা চিহ্নিত হিসাবে আপনি কেবল সাবক্লাসিং ছাড়াই site_headerআপনার urls.pyবা admin.pyসরাসরি সেট করতে পারেন AdminSite:

admin.site.site_header = 'My administration'

11
যখন আমি / মায়াডমিন / অ্যাক্সেস করার চেষ্টা করি তখন এটিতে "আপনার কোনও কিছু সম্পাদনা করার অনুমতি নেই" ত্রুটি বার্তাটি ছুঁড়ে দেয়। দেখে মনে হচ্ছে আমার .autodiscover কল করা উচিত, কিন্তু জাজানো 1.7 এটি স্বয়ংক্রিয়ভাবে কল করার কথা। কোন সুত্র?
ডেভিড আরকোস

3
@ ডেভিডআর্কোস আপনার নিজের তৈরি মডেলগুলিতে admin_siteআপনাকে নতুন মডেলগুলি নিবন্ধিত করতে হবে। পছন্দadmin_site.register(MyModel, ModelAdmin)
অ্যান্ড্রে ফেডোসিয়েভ

1
Django.auth.views- এ যদি একটি শিরোনামও কাস্টমাইজ করা উচিত (এটি admin/base_site.htmlটেমপ্লেটের উপর নির্ভর করে যেমন পাসওয়ার্ড_সেট) তবে extra_contextইউআরএলগুলিতেও ব্যবহার করা উচিত: উদাহরণস্বরূপurl(r'^password_reset/$', auth_views.password_reset, name='admin_password_reset', kwargs={'extra_context': {'site_header': "My administration"}})
হিনেকসার

এই উপায় সম্পর্কে জানার কিছু হ'ল এটি কেবলমাত্র মানক অ্যাডমিন পৃষ্ঠাগুলির সাথে কাজ করবে, যদি অন্য কোনও অ্যাপ্লিকেশন আপনার পক্ষে আপনার নিজের অ্যাডমিন পৃষ্ঠা যুক্ত করে থাকে (অ্যাডমিন বেস টেম্পলেটটি প্রসারিত করে) তবে তারা সর্বদা ডিফল্ট "জাজানো প্রশাসন" নেবে শিরোনাম.
কেদারে

1
@oxfn আমার যদি একাধিক অ্যাপ থাকে তবে admin.site.site_headerকনফিগারেশনটি app*/admin.pyকার্যকর হবে?
নলজোক

196

অ্যাডমিন সাইট শিরোলেখ সেট করার একটি সহজ উপায় রয়েছে - এটি বর্তমান প্রশাসনিক উদাহরণকে এর urls.pyমতো নির্ধারণ করুন

admin.site.site_header = 'My admin'

অথবা কেউ পৃথক পদ্ধতিতে কিছু শিরোনাম-নির্মাণের যাদু বাস্তবায়ন করতে পারে

admin.site.site_header = get_admin_header()

সুতরাং, সাধারণ ক্ষেত্রে সাবক্লাসের দরকার নেই AdminSite


1
প্রথম উপায় কাজ। এই মুহুর্তে সমস্যাটি কী ছিল তা আমি সত্যিই জানি না। আপনাকে ধন্যবাদ
অ্যালেক্স জোলিগ

4
যদি আপনি শিরোলেখে পরিবর্তন করছি, তাহলে হয়ত এছাড়াও সাইটের শিরোনাম, যা দিয়ে সম্পন্ন করা যাবে পরিবর্তন করতে চান পাবেন: admin.site.site_title = 'My site admin'
বিস্ময়কর

1
এখানে একটি আমদানি জুড়তে স্ট্রিং urls.py:from django.contrib import admin
serg

4
আমি এইটি প্রথম খুঁজে পেলাম ... ডকগুলি শোনার সাথে সাথে আমি AdminSiteএটিকে কাজ করার চেষ্টা করার জন্য একটি সময় সাবক্লাস করেছি এবং ব্যয় করেছি autodiscover()তবে শেষ পর্যন্ত নিজেরাই এই সমাধানটি নিয়ে ভাবলাম। আমার প্রকৃতপক্ষে আমার ওভাররাইডটি রয়েছে admin.py, যা আমি মনে করি যে এটি পরিষ্কার কারণ যেহেতু এটি অন্যান্য অ্যাডমিন-সম্পর্কিত যুক্তির সাথে রাখা হয়েছে
user193130


96

ইন urls.pyআপনি 3 সবচেয়ে গুরুত্বপূর্ণ ভেরিয়েবল ওভাররাইড করতে পারেন:

from django.contrib import admin

admin.site.site_header = 'My project'                    # default: "Django Administration"
admin.site.index_title = 'Features area'                 # default: "Site administration"
admin.site.site_title = 'HTML title from adminsitration' # default: "Django site admin"

তথ্যসূত্র: এই বৈশিষ্ট্যগুলিতে জাজানো ডকুমেন্টেশন


65

এই প্রশ্নের উত্তরের ভিত্তিতে জাজানো ১.৮.৩ এ একটি সাধারণ সম্পূর্ণ সমাধান।

ইন settings.pyঅ্যাড:

ADMIN_SITE_HEADER = "My shiny new administration"

ইন urls.pyঅ্যাড:

from django.conf import settings
admin.site.site_header = settings.ADMIN_SITE_HEADER

7
Url.py ব্যবহারের চেয়ে আরও ভাল জায়গা করার কি আছে?
ভেঙ্কট কোটরা

2
@VenkatKotra হ্যাঁ, admin.py। আপনার যদি ইতিমধ্যে এটি না থাকে তবে কেবল এটি তৈরি করুন এবং যুক্ত করতে ভুলবেন না from django.contrib import admin
ব্যবহারকারী 193130

3
সেটিংস আমদানি করার প্রস্তাবিত উপায়টি হ'ল - "জাঙ্গো.কনফ আমদানি সেটিংস থেকে" ( ডকস.ডজ্যাঙ্গোপ্রজেক্ট
এন

1
জ্যাঙ্গো ডেকে দেখায় এমন কোনও সেটিংস নেই ADMIN_SITE_HEADER, কেবল এখানে কেবল urls.py
বিষয়টিই

16

এটি করার সহজতম উপায় আপনার কাছে নিশ্চিত হয়ে নিন

from django.contrib import admin

এবং তারপরে এগুলি কেবল url.pyআপনার মূল অ্যাপ্লিকেশনটির নীচে যুক্ত করুন

admin.site.site_title = "Your App Title"
admin.site.site_header = "Your App Admin" 

15

জাজানো ২.১.১ এর জন্য নিম্নলিখিত লাইনগুলি যুক্ত করুন urls.py

from django.contrib import admin

# Admin Site Config
admin.sites.AdminSite.site_header = 'My site admin header'
admin.sites.AdminSite.site_title = 'My site admin title'
admin.sites.AdminSite.index_title = 'My site admin index'

10

আপনি যেমন টেমপ্লেটগুলিতে দেখতে পাচ্ছেন , পাঠ্যটি স্থানীয়করণের কাঠামোর মাধ্যমে সরবরাহ করা হয়েছে ( transটেমপ্লেটের ট্যাগ ব্যবহারের জন্য নোট করুন )। আপনি টেমপ্লেটগুলির নিজের অনুলিপি তৈরি না করেই পাঠ্যটিকে ওভাররাইড করতে অনুবাদ ফাইলগুলিতে পরিবর্তন করতে পারেন।

  1. mkdir locale

  2. ./manage.py makemessages

  3. locale/en/LC_MESSAGES/django.poএই লাইনগুলি যুক্ত করে সম্পাদনা করুন :

    msgid "Django site admin"
    msgstr "MySite site admin"
    
    msgid "Django administration"
    msgstr "MySite administration"
  4. ./manage.py compilemessages

Https://docs.djangoproject.com/en/1.3/topics/i18n/localization/#message-files দেখুন


1
এটি একটি ভয়াবহ সমাধান। ওভাররাইডিং অনুবাদ স্ট্রিংগুলি কেবল একটি ভয়ঙ্কর ধারণা।

5

admin.py:

from django.contrib.admin import AdminSite

AdminSite.site_title = ugettext_lazy('My Admin')

AdminSite.site_header = ugettext_lazy('My Administration')

AdminSite.index_title = ugettext_lazy('DATA BASE ADMINISTRATION')

1
from django.utils.translation import ugettext_lazy এই লাইন যুক্ত করতে ভুলবেন না।
কেদেবস

5

প্রথমত, আপনার প্রকল্পে টেমপ্লেট / অ্যাডমিন / বেস_সাইটেল html যুক্ত করা উচিত। এই ফাইলটি নিরাপদে ওভাররাইট করা যেতে পারে যেহেতু এটি এমন একটি ফাইল যা জ্যাঙ্গো ডেভস আপনার অ্যাডমিন সাইটটিকে কিছুটা কাস্টমাইজ করার সঠিক উদ্দেশ্যে তৈরি করেছে। ফাইলটিতে কী রাখবেন তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

{% extends "admin/base.html" %}
{% load i18n %}

{% block title %}{{ title }} | {% trans 'Some Organisation' %}{% endblock %}

{% block branding %}
<style type="text/css">
  #header
  {
    /* your style here */
  }
</style>
<h1 id="site-name">{% trans 'Organisation Website' %}</h1>
{% endblock %}

{% block nav-global %}{% endblock %}

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

$ mkdir locale
$ ./manage.py makemessages -l en

এখন লোকেল / এন / এলসি_মেসেজ / জাজানো.পি ফাইলটি খুলুন এবং শিরোনামের তথ্যের পরে দুটি লাইন যুক্ত করুন (এই উদাহরণের শেষ দুটি লাইন)

"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-04-03 03:25+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "Site administration"
msgstr "Main administration index"

এর পরে, নিম্নলিখিত কমান্ডটি চালনা এবং আপনার প্রকল্পের সার্ভারটি পুনরায় লোড করতে মনে রাখবেন:

$ ./manage.py compilemessages

উত্স: http://overtag.dk/wordpress/2010/04/changing-the-django-admin-site-title/


বাইরের সাইটগুলিতে লিঙ্ক করা খারাপ বলে বিবেচিত হয়, কারণ লিঙ্কটি খারাপ হতে পারে। আপনি এখানে সাইট থেকে উত্তর লিখতে উত্সাহিত করা হয়।

আপনি যদি সাইটের বাইরে যেতে না চান সে ক্ষেত্রে আমি উত্তরটি পুনরায় লিখেছিলাম।
Soroosh

5

জাজানো ২.০ থেকে আপনি কেবলমাত্র একটি লাইন যুক্ত করতে পারেন url.pyএবং নামটি পরিবর্তন করতে পারেন।

# url.py

from django.contrib import admin 
admin.site.site_header = "My Admin Central" # Add this

জ্যাঙ্গোর পুরানো সংস্করণগুলির জন্য (<1.11 এবং তার আগের) আপনাকে সম্পাদনা করতে হবেadmin/base_site.html

এই লাইনটি পরিবর্তন করুন

{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}

প্রতি

{% block title %}{{ title }} | {{ site_title|default:_('Your Site name Admin Central') }}{% endblock %}

আপনি নিজের djangoসংস্করণটি পরীক্ষা করে দেখতে পারেন

django-admin --version


3

এই কাজের জন্য আপনার কোনও টেম্পলেট পরিবর্তন করার দরকার নেই আপনার কেবলমাত্র settings.pyআপনার প্রকল্পের আপডেট আপডেট করতে হবে । নীচে যান এবং এটি settings.pyসংজ্ঞায়িত করুন।

admin.site.site_header = 'My Site Admin'

এইভাবে আপনি জাজানো প্রশাসকের হেডারটি পরিবর্তন করতে সক্ষম হবেন। এছাড়াও আপনি নীচের লিঙ্কে জ্যাঙ্গো অ্যাডমিন কাস্টমাইজেশন এবং সেটিংস সম্পর্কে আরও পড়তে পারেন।

জ্যাঙ্গো অ্যাডমিন ডকুমেন্টেশন



3

এটি করার জন্য দুটি পদ্ধতি রয়েছে:

1] ওভাররাইড base_site.htmlকরে django/contrib/admin/templates/admin/base_site.html: নীচের বিষয়বস্তু হল base_site.html:

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

{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}

{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
{% endblock %}

{% block nav-global %}{% endblock %}

উপরের কোড স্নিপেটে সাইট_শিরোনাম এবং সাইট_হেডার সম্পাদনা করুন। এই পদ্ধতিটি কাজ করে তবে এটি স্থিতিশীল পরিবর্তনের কারণে এটি সুপারিশযোগ্য নয়।

2] urls.pyপ্রকল্পের ডিরেক্টরিতে নিম্নলিখিত লাইনগুলি যুক্ত করে :

admin.site.site_header = "AppHeader"
admin.site.site_title = "AppTitle"
admin.site.index_title = "IndexTitle"

এই পদ্ধতিটি একটি হিসাবে সুপারিশ করা হয় যেহেতু আমরা কোনও সাইট সম্পাদনা ছাড়াই সাইট শিরোনাম, সাইট শিরোনাম এবং সূচি-শিরোনাম পরিবর্তন করতে পারি base_site.html


2

যেহেতু আমি কেবলমাত্র আমার অ্যাপ্লিকেশনটিতে অ্যাডমিন ইন্টারফেস ব্যবহার করি, তাই আমি এটিকে অ্যাডমিন.পিতে রেখেছি:

admin.site.site_header = 'My administration'

1

আপনি কেবলমাত্র admin/base_site.htmlটেমপ্লেটটি ওভাররাইড করুন (টেমপ্লেটটি অনুলিপি করুন django.contrib.admin.templatesএবং আপনার নিজের অ্যাডমিন টেম্পলেট ডায়ারে রেখেছেন) এবং brandingব্লকটি প্রতিস্থাপন করুন ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.