4 වන ඒකකය: Database Models නිර්මාණය
අපි දැන් අපේ "සටහන් යෙදුමේ" හදවත නිර්මාණය කරන්නයි යන්නේ. ඒ කියන්නේ, එක සටහනක (Note) මොන වගේ තොරතුරුද ගබඩා වෙන්න ඕන කියලා Django වලට කියන එක. මේකට තමයි අපි **Model** එකක් හදන්නේ.
Model එකක් කියන්නේ මොකක්ද?
පියවර 1: `notes/models.py` ගොනුවේ `Note` Model එක සෑදීම
අපේ `notes` app එක ඇතුළේ තියෙන `models.py` file එක open කරගෙන, පහත කේතය ඒකට ඇතුළත් කරන්න.
from django.db import models
from django.contrib.auth.models import User
# අපේ සටහන් සඳහා 'අච්චුව' (Model)
class Note(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
කේතය තේරුම් ගනිමු:
- `class Note(models.Model):`: අපි `Note` නමින් අලුත් model එකක් හදන බව Django වලට කියනවා.
- `user = models.ForeignKey(User, ...)`: මේක තමයි වැදගත්ම කොටස. හැම සටහනක්ම අයිති කාටද කියලා හඳුනාගන්න, අපි ඒක `User` model එකට සම්බන්ධ කරනවා (link). `on_delete=models.CASCADE` කියන්නේ user කෙනෙක්ව delete කළොත්, එයාගේ සටහනුත් ඉබේම delete වෙන්න කියන එකයි.
- `title = models.CharField(...)`: සටහනේ මාතෘකාව (කෙටි වාක්යයක්) සඳහා. `max_length=200` මගින් උපරිම අකුරු ගණන සීමා කරනවා.
- `content = models.TextField()`: සටහනේ සම්පූර්ණ විස්තරය (දිගු වාක්ය) සඳහා.
- `created_at = models.DateTimeField(...)`: සටහනක් සෑදූ වෙලාව ඉබේම සටහන් කරගන්න. `auto_now_add=True` නිසා අපිට මේක අතින් ඇතුළත් කරන්න අවශ්ය නෑ.
පියවර 2: Migrations - "අච්චුවෙන්" Database Table එක හැදීම
අපි දැන් Python කේතයෙන් අච්චුව හැදුවට, database එකේ තාම ඒකට අදාළ table එක හැදිලා නෑ. ඒ වැඩේ කරන්න පියවර දෙකක් තියෙනවා.
2a. `makemigrations` - උපදෙස් මාලාව සකස් කිරීම
මේ command එකෙන් වෙන්නේ, Django අපි හදපු model එක දිහා බලලා, database table එක හදන්න ඕන "උපදෙස් මාලාවක්" (migration file) හදන එකයි.
python manage.py makemigrations
2b. `migrate` - උපදෙස් ක්රියාත්මක කිරීම
දැන් අර හදපු උපදෙස් මාලාව ක්රියාත්මක කරලා, database එක ඇතුළේ නියම table එක හදන්න මේ command එක run කරන්න.
python manage.py migrate
දැන් අපේ `Note` model එකට අදාළ table එක database එකේ සූදානම්!
පියවර 3: Model එක Admin Panel එකට එකතු කිරීම
අපිට Admin Panel එකෙන් අපේ සටහන් බලන්න, එකතු කරන්න, මකන්න ඕන නම්, අපි මේ model එක admin එකේ register කරන්න ඕන.
`notes/admin.py` file එක open කරලා, පහත කේතය ඇතුළත් කරන්න.
from django.contrib import admin
from .models import Note # අපේ Note model එක import කරගන්න
# Note model එක admin site එකේ register කරන්න
admin.site.register(Note)