Katika somo hili tutajifunza jinsi ya kuunda dashboard rahisi ndani ya Django ambayo itaruhusu mtumiaji kuongeza, kusoma, kuhariri na kufuta taarifa za MenuItem bila kutumia Django built-in admin, bali kwa kutumia HTML templates na views tulizotengeneza sisi wenyewe.
Dashboard hutoa njia rahisi ya kusimamia data. Badala ya kutumia Django admin, leo tutajenga dashboard yetu wenyewe inayomruhusu admin kuongeza, kuhariri na kufuta taarifa za chakula.
Dashboard tunayotengeneza itakuwa sehemu ambayo mtumiaji (mfanyakazi au admin wa hoteli) ataweza:
Kuona orodha ya vyakula (Read)
Kuongeza chakula kipya (Create)
Kuhariri kilichopo (Update)
Kufuta kilichopo (Delete)
Hii ndiyo CRUD (Create, Read, Update, Delete).
Katika views.py tengeneza view ya kuonyesha dashboard:
from django.shortcuts import render, get_object_or_404, redirect
from .models import MenuItem
def dashboard(request):
items = MenuItem.objects.all()
return render(request, 'dashboard.html', {'items': items})
Faili: dashboard.html
<!DOCTYPE html>
<html>
<head>
<title>Dashboard ya Menu</title>
</head>
<body>
<h2>Dashboard – Orodha ya Vyakula</h2>
<a href="{% url 'add_item' %}">Ongeza Kitu Kipya</a>
<table border="1" cellpadding="6">
<tr>
<th>Jina</th>
<th>Muda Upatikanaji</th>
<th>Bei (TZS)</th>
<th>Hatua</th>
</tr>
{% for item in items %}
<tr>
<td>{{ item.jina }}</td>
<td>{{ item.muda_upatikanaji }}</td>
<td>{{ item.bei }}</td>
<td>
<a href="{% url 'edit_item' item.id %}">Edit</a> |
<a href="{% url 'delete_item' item.id %}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html>
def add_item(request):
if request.method == 'POST':
jina = request.POST.get('jina')
maelezo = request.POST.get('maelezo')
muda = request.POST.get('muda_upatikanaji')
bei = request.POST.get('bei')
MenuItem.objects.create(
jina=jina,
maelezo=maelezo,
muda_upatikanaji=muda,
bei=bei
)
return redirect('dashboard')
return render(request, 'add_item.html')
add_item.html<h2>Ongeza Kitu Kipya</h2>
<form method="POST">
{% csrf_token %}
<label>Jina:</label>
<input type="text" name="jina"><br>
<label>Maelezo:</label>
<textarea name="maelezo"></textarea><br>
<label>Muda Upatikanaji:</label>
<input type="text" name="muda_upatikanaji"><br>
<label>Bei (TZS):</label>
<input type="number" step="0.01" name="bei"><br>
<button type="submit">Hifadhi</button>
</form>
def edit_item(request, id):
item = get_object_or_404(MenuItem, id=id)
if request.method == 'POST':
item.jina = request.POST.get('jina')
item.maelezo = request.POST.get('maelezo')
item.muda_upatikanaji = request.POST.get('muda_upatikanaji')
item.bei = request.POST.get('bei')
item.save()
return redirect('dashboard')
return render(request, 'edit_item.html', {'item': item})
edit_item.html<h2>Hariri Kitu: {{ item.jina }}</h2>
<form method="POST">
{% csrf_token %}
<label>Jina:</label>
<input type="text" name="jina" value="{{ item.jina }}"><br>
<label>Maelezo:</label>
<textarea name="maelezo">{{ item.maelezo }}</textarea><br>
<label>Muda Upatikanaji:</label>
<input type="text" name="muda_upatikanaji" value="{{ item.muda_upatikanaji }}"><br>
<label>Bei:</label>
<input type="number" step="0.01" name="bei" value="{{ item.bei }}"><br>
<button type="submit">Hifadhi</button>
</form>
def delete_item(request, id):
item = get_object_or_404(MenuItem, id=id)
item.delete()
return redirect('dashboard')
Kwenye urls.py:
path('dashboard/', views.dashboard, name='dashboard'),
path('add/', views.add_item, name='add_item'),
path('edit/<int:id>/', views.edit_item, name='edit_item'),
path('delete/<int:id>/', views.delete_item, name='delete_item'),
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Share On:
Katika somo hili utakwenda kujifunz amaana ya inheritance na sheria za kuiandika inheritance.
Soma Zaidi...Katika somo hili utakwend akujifunza jinsi ya kuandika function, kuweka parameter na kuitumia function
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhsu Template Tag nini na kazi zake. Pia utajifunza sheria za uandishi wake.
Soma Zaidi...Katika somo hili tutajifunza mambo matatu muhimu ya kuboresha admin ya Django: Jinsi ya kubadili header za Django Admin Jinsi ya kuongeza columns zinazojitokeza kwenye admin list Jinsi ya kuweka limit ya rows zinazoonekana kwa kila ukurasa (pagination)
Soma Zaidi...Katika somo hili tutakwend akujifunza jinsi ya kutumia while loop kwneye python
Soma Zaidi...Katika somo hili utakwend akujifunza kuchakata data kwa Kutumia Loops na Conditions katika Django Templates
Soma Zaidi...Katika somo hili tunakwenda kujifunza aina nyingine za data ambazo hutumika kwenye python.
Soma Zaidi...Katika somo hili tutakwend akujifunza kwa urefu zaidi kuhusu parameter ambazo hutumika kwenye functions
Soma Zaidi...Katika somo hili utakwenda kujifunza syntaxy za python yaani sheria na kanuni za kuandika code za python
Soma Zaidi...Katika somo hili tutajifunza jinsi ya kutumia Django ORM kufanya mahesabu mbalimbali kama Sum, Avg, Count, Max, Min, pamoja na kupunguza idadi ya items zinazoonekana kwenye dashboard (LIMIT). Pia tutajifunza namna ya kutengeneza βdifferenceβ kati ya thamani kubwa na ndogo bila kubadilisha functions zozote ulizokwisha ziandika.
Soma Zaidi...