3 වන කොටස: Django Admin Panel

කේත නොලියා, දත්ත කළමනාකරණය කරන ආකාරය.


Django Admin Panel යනු ඔබගේ යෙදුමේ දත්ත කළමනාකරණය කිරීම සඳහා Django විසින් සූදානම් කර ඇති, නිෂ්පාදන මට්ටමේ (production-ready) වෙබ් අතුරු මුහුණතකි.

වෙනත් වචන වලින් කිවහොත්, දත්ත ඇතුලත් කිරීමට (Create), බැලීමට (Read), යාවත්කාලීන කිරීමට (Update), සහ මැකීමට (Delete) අවශ්‍ය වෙබ් පිටු අප විසින්ම නිර්මාණය කිරීම වෙනුවට, Django අපට මේ සියල්ල සඳහා සූදානම් පද්ධතියක් ලබා දෙයි. මෙය අපගේ සංවර්ධන කාලය (development time) විශාල ලෙස ඉතිරි කරයි.

Admin Panel එකට ඇතුල් වීමට (log in) නම්, අපට පරිපාලක බලතල සහිත පරිශීලක ගිණුමක් (user account) අවශ්‍ය වේ. Django හි මෙය Superuser ලෙස හැඳින්වේ.

ක්‍රියාවලිය:

ඔබගේ project එකේ terminal එක විවෘත කර, පහත විධානය (command) ක්‍රියාත්මක කරන්න.

python manage.py createsuperuser

ඉන්පසු, Django ඔබෙන් පහත දේ අසනු ඇත:

  • Username: පරිශීලක නාමය (උදා: admin)
  • Email address: විද්‍යුත් තැපැල් ලිපිනය
  • Password: මුරපදය (ආරක්ෂාව සඳහා ඔබ ටයිප් කරන විට මෙය නොපෙනේ)
  • Password (again): මුරපදය නැවත ටයිප් කරන්න

මෙම පියවර සාර්ථකව අවසන් වූ පසු, ඔබගේ Superuser ගිණුම නිර්මාණය වනු ඇත.

අපි models.py ගොනුවේ Pizza සහ Order යන models නිර්මාණය කළද, ඒවා තවමත් Admin Panel එකේ දර්ශනය නොවේ. ඒවා එහි පෙන්වීම සඳහා අප විසින් Django වෙත දැනුම් දිය යුතුය.

ක්‍රියාවලිය:

orders/admin.py ගොනුව විවෘත කර, පහත කේතය ඇතුලත් කරන්න.

from django.contrib import admin
from .models import Pizza, Order # අපගේ models import කරගැනීම

# ඔබගේ models මෙහි register කරන්න.
admin.site.register(Pizza)
admin.site.register(Order)

මෙම සරල කේත පේළි දෙක මගින් Django වෙත දන්වන්නේ Pizza සහ Order යන models දෙක Admin Panel එක හරහා කළමනාකරණය කිරීමට අවශ්‍ය බවයි.

දැන් සියල්ල සූදානම්! Admin Panel එක ක්‍රියාත්මක කර අපගේ පීසා වර්ග දෙක ඇතුලත් කරමු.

  1. Server එක Run කරන්න: Terminal එකේ පහත විධානය ක්‍රියාත්මක කරන්න.
    python manage.py runserver
  2. Admin Panel වෙත පිවිසෙන්න: Web browser එකක් විවෘත කර http://127.0.0.1:8000/admin/ යන ලිපිනයට යන්න.
  3. Login වන්න: ඔබ මීට පෙර නිර්මාණය කළ Superuser ගේ username සහ password භාවිතා කර ඇතුල් වන්න.
  4. දත්ත ඇතුලත් කරන්න:
    • Login වූ පසු ඔබට Admin Dashboard එක පෙනෙනු ඇත. එහි "ORDERS" යටතේ "Pizzas" යනුවෙන් link එකක් පෙනෙනු ඇත. එය මත click කරන්න.
    • ඉන්පසු, දකුණු පස ඉහළ ඇති "ADD PIZZA +" බොත්තම click කරන්න.
    • විවෘත වන form එකේ, පීසා එකේ නම (Name) සහ මිල (Price) ඇතුලත් කර "SAVE" කරන්න.
උදාහරණයක් ලෙස:
  • Pizza 1: Name: Chicken Bacon, Price: 2500.00
  • Pizza 2: Name: Sausage Delight, Price: 2300.00

Default Admin Panel එක ඉතා ප්‍රයෝජනවත් වුවත්, අපට එය තවදුරටත් වැඩි දියුණු කළ හැක. උදාහරණයක් ලෙස, Order ලැයිස්තුව පෙන්වන විට, එහි වැදගත් තොරතුරු කිහිපයක් පෙන්වීමට සහ පහසුවෙන් සෙවීමට (search) සලස්වමු.

orders/admin.py ගොනුව පහත පරිදි යාවත්කාලීන කරන්න.

from django.contrib import admin
from .models import Pizza, Order

class OrderAdmin(admin.ModelAdmin):
    list_display = ('id', 'user', 'pizza', 'status', 'created_at')
    list_filter = ('status', 'created_at')
    search_fields = ('user__username', 'pizza__name')

admin.site.register(Pizza)
admin.site.register(Order, OrderAdmin) # Order register කිරීමේදී OrderAdmin class එක ලබාදීම

වැඩි දියුණු කිරීම් පැහැදිලි කිරීම:
  • list_display: Order ලැයිස්තුවේ පෙන්විය යුතු තීරු (columns) මොනවාදැයි නියම කරයි.
  • list_filter: ඇණවුම් status එක හෝ created_at දිනය අනුව filter කිරීමට දකුණු පසින් sidebar එකක් එක් කරයි.
  • search_fields: පරිශීලක නාමය (user__username) හෝ පීසා නාමය (pizza__name) අනුව ඇණවුම් සෙවීමට search bar එකක් එක් කරයි.
දැන් Admin Panel එක refresh කර බැලූ විට, ඔබට Order පිටුව වඩාත් තොරතුරු සහිතව සහ භාවිතා කිරීමට පහසුවෙන් දිස්වනු ඇ ත.