@YaserAlnajjar
هل يمكنك أن تشرحلي لماذا تمت اضافة
id=post.id
فنحن لم نستخدمها داخل الفورم انا فهمت كل شيء الا هذه لكم تكن واضحة لدي كفاية
مع محبتي
@YaserAlnajjar
هل يمكنك أن تشرحلي لماذا تمت اضافة
id=post.id
فنحن لم نستخدمها داخل الفورم انا فهمت كل شيء الا هذه لكم تكن واضحة لدي كفاية
مع محبتي
بالتاكيد، الامر وما فيه ان رابط تحديث المنشور عرفناه كالتالي
@app.route(’/post/update/int:id’
يعني احنا نقول /post/update/
لكن متبوع بال id المميز الخاص بالمنشور، لنعرف ماهو المنشور الذي سنقوم بتحديثه.
لهذا السبب لازم نمرر ال id من داخل ال template (صفحة html) باستعمال الدالة url_for.
نفس الامر مع رابط الحذف post/update
متبوع بال id
ونحن ناخذ ال id الخاص بالمنشور من template الرئيسي حين ما نضغط على الزر edit ثم نمرره لمن؟
تمرره للجزء GET من هذه الدالة
بدورها تظهر صفحة تعديل المنشور.
وحينما تضغط على زر submit ترسل الطلب على POST لنفس الدالة.
شكرا لقد اتضحت الصورة العملية تحتاج للتركيز والفهم، لأن الذي حصل عبارة عن عدة خطوات مترابطة ومتسلسلة
فحين ضغطنا على زر edit قام هذا الزر بنقلنا إلى ال view post_update وأبعثنا معه ال id الخاص بالمنشور ولأن نوع الطلب GET قام بتنفيذ الشرط المتعلق به وهو:
elif request.method == 'GET':
post = p.get_by_id(id)
return render_template('post_update.html',post = post)
وهذا بدوره يقوم ببعث بيانات المنشور من ضمنها ال id لل template post_update فتضهر لنا الصفحة ومعها البيانات الخاصة بالمنشور
وحين نضغط على الزر حفظ فأنه مرتبط بالحدث :
<form action="{{url_for('post_update',id=post.id)}}" method="POST">
وهذا يعود لينفذ ال view post_update حاملأ معه ال id وينفذ الشرط الأول لأنه من النوع post
لقد اطلت كنني أحببت ان اشرح كي أتأكد بأنني فهمت الصورة بشكل صحيح
نعم بالضبط هذا هو ما يحصل
مرحباً
تم إضافة درس جديد في ورشة عمل تطبيق مشابه للفيسبوك يوضح اللبس الحاصل في كيف تعمل آلية الحذف والتعديل:
@Adetech
@yahya-alshammout
@saraweb
@asmaa_salih
@sohep
@SamerElhamdo
في حال ما زال أي شيء غير واضح, سأكون سعيد بتوضيحه
واخيرا انهت جزء الخاص بتعديل المنشورات ^^
عمل ممتاز يا كمال
هل من خطأ
شكرا على التواضع اخ ياسر بارك الله فيك
Hi guys!
مـشـاركـة حـلـول تـعـديـل الـمـنـشـورات …
عـنـدي مـشـكـلـة فـي الـصـفـحـه الـرئـيـسيـه فـي الـ HTML يـظـهـر الـمـنـشـور الأول مـضـبـوط بـس الـمـنـشـور الـثـاني يـظـهـر بـهـذا الـشـكـل كـيـف أحـل الـمـشـكـلـه ؟؟!!!
المشكلة حلها بسيط جدا، في هذا الجزء:
{%for post in posts%}
<article>
{% endfor %}
</article>
لاحظي أنه يتم عمل endfor قبلما يتم اغلاق العنصر article (يعني العنصر التالي سيصبح داخل نفس الـ article)، الحل ببساطة جعل endfor بعد article بهذ الشكل:
{%for post in posts%}
<article>
</article>
{% endfor %}
نعم بقي فقط ديبلوي ولكن أريد أن أضيف لمسات شخصية للواجهة الأمامية
بعدها سأقوم بتسجيل 20 دقيقة كتصميم للموقع في إطار مسابقة المحتوى العربي