KUTENGENEZA MODEL YA MENU NA UFUNUZI WA FIELD ZAKE
Katika Django, model ni class inayotumika kuunda jedwali (table) kwenye database. Kila kipengele kwenye model ni field inayowakilisha safu (column) ya data. Hii model ndio itakwenda kuamrisha django kutengeneza table yenye field fulani kwneye database.
Kwa lugha rahisi ni kuwa, tunapotumia framework, ili kuweza kucheza na database, kama kuteneneza table, ama kubadili, kufuta n.k, huwa tunatumia model ili kuweza kufanya hayo. model ni class ambayo inaadikwa kwa ajili ya ku manipulate database.
Kwenye App ndani ya project tafuta folder faili linaloitwa models.py hapo uta pest code hozo hapo chini.
Tuna mfano wa model yetu kama ifuatavyo:
from django.db import models
class MenuItem(models.Model):
jina = models.CharField(max_length=100)
maelezo = models.TextField(blank=True)
muda_upatikanaji = models.CharField(max_length=50)
bei = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
return self.jina
Hebu tuchambue kila sehemu ya model hii kwa undani:
? 1. jina = models.CharField(max_length=100)
-
CharField hutumika kuhifadhi maandishi mafupi kama majina.
-
max_length=100 inaweka ukomo wa herufi 100 kwa jina hili.
✅ Mfano wa data:
"Chips Mayai"
? 2. maelezo = models.TextField(blank=True)
-
TextField hukusanya maandishi marefu kama maelezo au maudhui marefu.
-
blank=True ina maana sehemu hii inaweza kuachwa wazi wakati wa kuingiza data.
✅ Mfano wa data:
"Chakula hiki hutolewa na maziwa safi."
? 3. muda_upatikanaji = models.CharField(max_length=50)
-
Hii pia ni CharField kwa kuwa muda tunaouandika ni maandishi.
-
max_length=50 inatosha kwa maandishi kama:
✅ Mfano wa data:
"Asubuhi hadi saa 8","Jumamosi tu"
? 4. bei = models.DecimalField(max_digits=10, decimal_places=2)
-
DecimalField inahifadhi namba zenye desimali kwa usahihi, hasa bei.
-
max_digits=10: idadi ya jumla ya tarakimu kabla na baada ya nukta.
-
decimal_places=2: idadi ya tarakimu baada ya decimal point.
✅ Mfano wa data:
3500.00,19999.99
? 5. def __str__(self): return self.jina
-
Django hutumia
__str__kuonyesha jina la item kwa maandishi badala yaMenuItem object (1). -
Inafanya iwe rahisi kutambua item kwenye Django Admin na Shell.
? MAELEZO YA ZIADA KUHUSU FIELD ZA DJANGO
| Kipengele | Maana |
|---|---|
max_length |
Urefu wa juu wa maandishi (CharField, EmailField, n.k.) |
blank=True |
Ruhusu sehemu hii kuachwa wazi kwenye fomu |
null=True |
Ruhusu NULL kwenye database (backend level) |
default=value |
Thamani ya awali kama hakuna kilichojazwa |
unique=True |
Hakikisha hakuna data inayojirudia |
choices=[()] |
Weka orodha ya chaguzi zinazokubalika |
? MUHTASARI WA SOMO
-
Django hutumia model kuwakilisha jedwali la database.
-
Kila field (CharField, TextField, DecimalField, n.k.) ina sifa maalum kulingana na aina ya data.
-
DecimalFieldni muhimu kwa data za fedha kwa usahihi mkubwa. -
__str__()inasaidia kuonyesha jina la kirafiki badala ya object kwenye admin panel.