تحديث البيانات

albaderمنذ 6 سنوات

اليوم بأذن الله نتعلم كيفية تحديث البيانات بكل سهولة

 

 

بدايةً نقوم بانشاء دالة التحديث

def update(request, id):#تستقبل بارمترين البارمتر الثاني الاي دي الخاص بالبيانات
    query = TestBlog.objects.get(id=id)# جلب المعلومات حسب الاي دي
    context = {'object':query}# اضفنا قاموس مفتاح وقيمة القيمة عباره عن البيانات من المتغير
    if request.method == 'POST':# شرط لو كان الارسال من نوع بوست
        author = request.POST['author']# اسندنا البيانات التي استقبلناها لمتغير 
        title = request.POST['title']
        post = request.POST['post']

        query.author = author # قمنا بتغير البيانات حسب البيانات اللي استقبلناها من اليوزر
        query.title = title# نفس ماسبق
        query.post = post# نفس ماسبق
        query.save()# قمنا بحفظ البيانات بعد التعديل 

    return render(request, 'blog/update.html', context)# اعدنا القيمة للقالب update

 

شرح الدالة بجانبها

 

بعد انشاء الدالة نذهب الى ملف urls.py

لاضافة مسار جديد للتحديث

url(r'^template/(?P<id>[0-9]+)/update/$', views.update, name='update'),

#نشرح ماسبق

url(r'^template/(?P<id>[0-9]+)/update/$', #هنا عرفنا المسار بالتعابير القياسية 
views.update, #هنا اسم الدالة المسؤوله عن التحديث
name='update'),# هنا اسم المسار هذا يكون فريد لاننا سنستخدمه مستقلا بالقوالب 

 

 

بعد انشاء الرابط

 

نقوم بانشاء  ملف update.html

مشابه لصفحة create.html  100%

الاختلاف البسيط اننا سنضيف value  فقط لعرض البيانات

<h1>{{ object }}</h1>
<form action="" method="post">

    {% csrf_token %}

    <input type="text" name="author" placeholder="author" value="{{ object.author }}"><br>
    <input type="text" name="title" placeholder="title" value="{{ object.title }}"><br>
    <textarea name="post" id="" cols="30" rows="10" placeholder="post">{{ object.post }}</textarea><br>
    <input type="submit" value="update!">
</form>

 

تم انشاء الملف

 

الان سنذهب الى ملف detail.html

بداخله الكود التالي

<h1>{{ detail.title }}</h1>
<hr>
{{ detail.author }}
<p>{{ detail.post }}</p>
<!-- نضيف السطر التالي -->
<a href="/template/{{ detail.id }}/update/">update</a>

 

 

نقوم بتشغيل السيرفر الان

python manage.py runserver

نذهب للمصتفح

http://127.0.0.1:8000/template

ندخل اي موضوع من المواضيع المعروضه

بالضغط عليه سيحولنا لعرض الموضوع  مثلا الموضوع الثاني

http://127.0.0.1:8000/template/2/

الان ظهر لنا زر جديد اسفل الصفحة باسم update

لو قمنا بالضغط عليه سيحولنا الى

http://127.0.0.1:8000/template/2/update/

الان ظهرت لنا المعلومات كامله ونستطيع تحديثها فقط غير المعلومات وقم بعمل تحديث سيتم التحديث بنجاح

 

 

التعليقات (1)

wesamfahad:

شرح جميل مبسط   جزاك الله خير

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !