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.. ?
Katika somo ili utajifunza hatuwa kwa hatuwa za ku install Django, kutengeneza project na kutengeneza app
Soma Zaidi...Somo hili linazungumzia hatua ya kuunda navigation menu na kutumia template inheritance kwa njia ya kitaalamu katika Django.
Soma Zaidi...Katika somo hili utakwenda kujifunza kuhusu number method yaani function zinazofanya kazi kwenye namba.
Soma Zaidi...Katika somo hili utakwenda kujifunza vipi django inaweza kuwasiliana na database, utajifunza kuusu orm na model
Soma Zaidi...Katika somo hili utakwenda kujifunza zaidi kuhusu Jinsi ya Kuongeza Kurasa Nyingine Katika Django View
Soma Zaidi...Katika somo hili tutakwend akujifunza kwa urefu zaidi kuhusu parameter ambazo hutumika kwenye functions
Soma Zaidi...Katika somo hili utakwenda kujifunza kutengeneza htmk form pamoja na kuituma.
Soma Zaidi...Katika somo hili utajifunza jisni ya kujuwa aina ya data iliyotumika kwenye python
Soma Zaidi...Katika somo hili, tutajifunza: Maana ya Python shell na umuhimu wake. Tofauti kati ya shell na terminal ya kawaida. Matumizi ya shell, hususan kwenye Django. Amri muhimu zaidi za Python shell, zilizotokana na models na views zako za pybongo.
Soma Zaidi...Katika somo hili utakwend akujifunz anamna ya kuwez akupata taarifa zinazohusu faili
Soma Zaidi...