জ্যাঙ্গোর জনপ্রিয় ফিচারগুলোর মধ্যে এর এ্যাডমিন এ্যাপ্লিকেশনটি বেশ জনপ্রিয় । এই এ্যাপ্লিকেশনটি জ্যাঙ্গোর সাথেই আসে । এটি যেকোন সাইট এ্যাডমিনিস্ট্রেশন অনেক সহজ করে দেয় । তো আসলে এটা করে টা কি? এই এ্যাপটিকে আপনার মডেল গুলোর নাম জানিয়ে দিলে সে আপনার জন্য সকল ডাটা অপারেশন (CRUD == Create Read Update Delete) করার জন্য বেশ চমৎকার ইন্টারফেইস তৈরি করে দিবে তেমন কোন কোডিং ছাড়াই । আপনি সেই ইন্টারফেইস ব্যবহার করে ডাটাবেইজে নতুন ডাটা ইনপুট করতে পারবেন, পুরাতন ডাটা দেখা, পরিবর্তন করা কিংবা মুছে ফেলতেও পারবেন বেশ সহজে । কষ্ট করে আর এ্যাডমিন প্যানেল বানানোর প্রয়োজন নেই ।
জ্যাঙ্গো এ্যাডমিন এ্যাপ্লিকেশনটি পাওয়া যাবে django.contrib.admin
প্যাকেজে । তাই আমাদেরকে settings.py
এর INSTALLED_APPS
সেকশনটিতে এই এ্যাপ্লিকেশন টি যোগ করে নিতে হবে । এই কাজটি কিভাবে করতে হবে তার উদাহরণ আমরা প্রথম অধ্যায়ে দেখেছি ।
এ্যাডমিন এ্যাপ্লিকেশনটি তার ব্যবহারের জন্য বেশ কিছু ডাটা মডেল সরবরাহ করে । তাই এ্যাপ্লিকেশনটি ব্যবহার করার আগে আমাদের syncdb
কমান্ডটিও চালানো প্রয়োজন হবে -
python manage.py syncdb
এই প্রসেসের শেষে একটি সুপার ইউজার তৈরি করার প্রম্পট পাওয়া যাবে । এ ব্যাপারে আগের অধ্যায়ে আলোচনা করা হয়েছে । এই কমান্ড চালানোর ফলে জ্যাঙ্গো এ্যাডমিন এ্যাপের জন্য প্রয়োজনীয় সব টেবিল তৈরি করে নিবে ।
এবার আমাদেরকে বলে দিতে হবে কোন URL ভিজিট করলে এ্যাডমিন এ্যাপটি পাওয়া যাবে । জ্যাঙ্গোর এই ডেফিনিশনগুলো থাকে mysite/urls.py
ফাইলে ।
আমরা ফাইলটি এডিট করে এরকম রুপ দেই -
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
জ্যাঙ্গোর urls.py
তে মূলত একটি ভ্যারিয়েবল থাকে urlpatterns
নামে যেটিতে আমরা সব URL এর জন্য ডেফিনিশন প্রদান করি । এটি কিভাবে কাজ করে তা আমরা জ্যাঙ্গো এপিআই থেকে আরো বিস্তারিত দেখে নিবো পরবর্তীতে কোন এক সময় ।
আমরা আপাতত এই urlpatterns
এ আমাদের ডেফিনিশন যোগ করে দিলাম ।
url(r'^admin/', include(admin.site.urls))
এটির মানে হলো যদি রিকুয়েস্ট করা URL এর প্রথমে admin
থাকে তবে যেন জ্যাঙ্গো admin.site.urls
থেকে ডেফিনিশন ইম্পোর্ট করে নেয় । include
ব্যবহার করে আমরা আমাদের urlpatterns
এর মধ্যে প্রয়োজনীয় url ইম্পোর্ট করে নিতে পারি সহজেই!
এ্যাডমিন এ্যাপ্লিকেশনটি চেখে দেখার জন্য আমাদের এবার ডেভেলপমেন্ট সার্ভারটি চালু করে নিতে হবে । কমান্ডটি যদিও এর আগে দেখানো হয়েছে তবু আরেকবার দেখে নেই -
python manage.py runserver
পুনশ্চ: এই কমান্ডটি জ্যাঙ্গো এ্যাপ্লিকেশন ডেভেলপমেন্টে বোধহয় সবচাইতে বেশী ব্যবহৃত কমান্ড । তাই এটি আত্মস্থ করা অতীব জরুরী ।
ডেভ সার্ভার রান করলে এবার চটপট ব্রাউজারে এই URL টা আমরা ভিজিট করি -
http://127.0.0.1:8000/admin/
যদি আপনি সব কিছু ঠিক ঠাক মতো করে থাকেন তবে এরকম একটি ইন্টারফেইস পাবেন -
আর যদি এরকম স্ক্রীন না এসে কোন ইরর মেসেজ দেখায় তবে ধাপগুলো আবার চেক করুন, খুজে বের করুন কোথায় ভুল হয়েছে ।
জ্যাঙ্গো এ্যাডমিন এ্যাপটি যোগ করে প্রথমবার syncdb
রান করার পর একটি সুপার ইউজার তৈরি করেছিলাম আমরা । এ্যাডমিন প্যানেলে প্রবেশ করার জন্য সেই এ্যাকাউন্টটির ইউজারনেইম এবং পাসওয়ার্ড ব্যবহার করুন । যদি সেই সময় সুপার ইউজার তৈরি করা না হয়ে থাকে বা কোন কারণে নতুন আরেকটি এ্যাকাউন্ট প্রয়োজন হয় তবে নতুন সুপার ইউজার তৈরি করার জন্য এই কমান্ডটি রান করুন -
python manage.py createsuperuser
লগিন করার পর আমরা এরকম একটি স্ক্রীন দেকতে পাবো -
এখান থেকে আমরা বিভিন্ন এ্যাপ্লিকেশন এর মডেলগুলো এ্যাক্সেস করতে পারি । উদাহরণ স্বরুপ জ্যাঙ্গোর Auth
এবং Sites
এ্যাপ্লিকেশনের মডেলগুলো আমরা এই স্ক্রীনশটে দেখতে পারছি ।
এ্যাডমিন এ্যাপ্লিকেশন সংক্রান্ত সকল কোড রাখতে হবে আমাদের এ্যাপ্লিকেশন প্যাকেজের ভিতর admin.py
নামক একটি ফাইলে । জ্যাঙ্গো এ্যাডমিন লোড হওয়ার সময় সকল ইনস্টল্ড এ্যাপ্লিকেশন এর ভিতর admin.py
ফাইলগুলোকে রান করে । ফলে এই ফাইলে আমরা এ্যাডমিন এ্যাপ্লিকেশনকে বলে দিতে পারি আমরা এ্যাডমিন প্যানেলে আমাদের এ্যাপ্লিকেশন থেকে কি কি করতে দিতে চাই ।
আপাতত আমাদের চাওয়া খুব সিম্পল । আমাদের ভোটাভোটির জন্য Poll
মডেলটি দরকার এ্যাডমিন ইন্টারফেইসে । তাই আমরা polls/admin.py
ফাইলটি তৈরি করে সেখানে এই কোড ব্যবহার করবো -
from django.contrib import admin
from polls.models import Poll
admin.site.register(Poll)
এই কোডে আসলে আমরা জ্যাঙ্গো এ্যাডমিনকে বলে দিচ্ছি আমাদের Poll
মডেলটিকে এ্যাডমিন সাইটে রেজিস্টার করে নিতে । অর্থাৎ আমরা এ্যাডমিন এ্যাপকে বলে দিলাম আমাদের মডেলটির কথা যেন এ্যাডমিন এ্যাপ আমাদের সুযোগ করে দেয় সহজে এই মডেলটি ব্যবহার করার ।
ফাইলটি এ্যাড করার পর ব্রাউজারে আবার এ্যাডমিন সাইটে প্রবেশ করুন । এবার চিত্রটি হবে অনেকটা এরকম -
Polls
লিংক এ ক্লিক করলে এরকম একটি স্ক্রীন পাবেন -
আমরা চাইলে আমাদের আগেই সেইভ করা এন্ট্রিটি পরিবর্তন করতে পারি -
এতক্ষণ ধরে আমরা যা দেখলাম তা হলো কত সহজে আমাদের ডাটা মডেলকে ব্যবহার করা যায় জ্যাঙ্গো এ্যাডমিন থেকে । জ্যাঙ্গো এ্যাডমিন বেশ কাস্টোমাইজেবলও বটে । নানা ধরণের অপশন ব্যবহার করে এটিকে সাজিয়ে নেওয়া যায় নিজের ইচ্ছামত । এ্যাডমিন সাইট কাস্টোমাইজেশন নিয়ে পরবর্তীতে বিস্তারিত আলোচনা থাকবে ইনশাআল্লাহ!