Links

দ্বিতীয় অধ্যায়

জ্যাঙ্গো এ্যাডমিন - পরিচিতি

জ্যাঙ্গোর জনপ্রিয় ফিচারগুলোর মধ্যে এর এ্যাডমিন এ্যাপ্লিকেশনটি বেশ জনপ্রিয় । এই এ্যাপ্লিকেশনটি জ্যাঙ্গোর সাথেই আসে । এটি যেকোন সাইট এ্যাডমিনিস্ট্রেশন অনেক সহজ করে দেয় । তো আসলে এটা করে টা কি? এই এ্যাপটিকে আপনার মডেল গুলোর নাম জানিয়ে দিলে সে আপনার জন্য সকল ডাটা অপারেশন (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/
যদি আপনি সব কিছু ঠিক ঠাক মতো করে থাকেন তবে এরকম একটি ইন্টারফেইস পাবেন -
Could not load image
django-admin
আর যদি এরকম স্ক্রীন না এসে কোন ইরর মেসেজ দেখায় তবে ধাপগুলো আবার চেক করুন, খুজে বের করুন কোথায় ভুল হয়েছে ।

এ্যাডমিন প্যানেলে লগিন করা

জ্যাঙ্গো এ্যাডমিন এ্যাপটি যোগ করে প্রথমবার syncdb রান করার পর একটি সুপার ইউজার তৈরি করেছিলাম আমরা । এ্যাডমিন প্যানেলে প্রবেশ করার জন্য সেই এ্যাকাউন্টটির ইউজারনেইম এবং পাসওয়ার্ড ব্যবহার করুন । যদি সেই সময় সুপার ইউজার তৈরি করা না হয়ে থাকে বা কোন কারণে নতুন আরেকটি এ্যাকাউন্ট প্রয়োজন হয় তবে নতুন সুপার ইউজার তৈরি করার জন্য এই কমান্ডটি রান করুন -
python manage.py createsuperuser
লগিন করার পর আমরা এরকম একটি স্ক্রীন দেকতে পাবো -
Could not load image
django-admin-home
এখান থেকে আমরা বিভিন্ন এ্যাপ্লিকেশন এর মডেলগুলো এ্যাক্সেস করতে পারি । উদাহরণ স্বরুপ জ্যাঙ্গোর 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 মডেলটিকে এ্যাডমিন সাইটে রেজিস্টার করে নিতে । অর্থাৎ আমরা এ্যাডমিন এ্যাপকে বলে দিলাম আমাদের মডেলটির কথা যেন এ্যাডমিন এ্যাপ আমাদের সুযোগ করে দেয় সহজে এই মডেলটি ব্যবহার করার ।
ফাইলটি এ্যাড করার পর ব্রাউজারে আবার এ্যাডমিন সাইটে প্রবেশ করুন । এবার চিত্রটি হবে অনেকটা এরকম -
Could not load image
django-admin-polls
Polls লিংক এ ক্লিক করলে এরকম একটি স্ক্রীন পাবেন -
Could not load image
django-admin-polls-list
আমরা চাইলে আমাদের আগেই সেইভ করা এন্ট্রিটি পরিবর্তন করতে পারি -
Could not load image
edit-poll

জ্যাঙ্গো এ্যাডমিন - সারমর্ম

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