مشاركة حلول: تعديل المنشورات

@YaserAlnajjar
هل يمكنك أن تشرحلي لماذا تمت اضافة

id=post.id 

فنحن لم نستخدمها داخل الفورم انا فهمت كل شيء الا هذه لكم تكن واضحة لدي كفاية
مع محبتي

2 Likes

بالتاكيد، الامر وما فيه ان رابط تحديث المنشور عرفناه كالتالي

@app.route(’/post/update/int:id

يعني احنا نقول /post/update/ لكن متبوع بال id المميز الخاص بالمنشور، لنعرف ماهو المنشور الذي سنقوم بتحديثه.

لهذا السبب لازم نمرر ال id من داخل ال template (صفحة html) باستعمال الدالة url_for.

نفس الامر مع رابط الحذف post/update متبوع بال id

2 Likes

ونحن ناخذ ال id الخاص بالمنشور من template الرئيسي حين ما نضغط على الزر edit ثم نمرره لمن؟

1 Like

تمرره للجزء GET من هذه الدالة

بدورها تظهر صفحة تعديل المنشور.

وحينما تضغط على زر submit ترسل الطلب على POST لنفس الدالة.

1 Like

شكرا لقد اتضحت الصورة العملية تحتاج للتركيز والفهم، لأن الذي حصل عبارة عن عدة خطوات مترابطة ومتسلسلة
فحين ضغطنا على زر 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

لقد اطلت كنني أحببت ان اشرح كي أتأكد بأنني فهمت الصورة بشكل صحيح

2 Likes

نعم بالضبط هذا هو ما يحصل :wink:

2 Likes
1 Like

مرحباً

تم إضافة درس جديد في ورشة عمل تطبيق مشابه للفيسبوك يوضح اللبس الحاصل في كيف تعمل آلية الحذف والتعديل:

https://coretabs.net/classroom/backend/عمل-تطبيق-مشابه-للفيسبوك/صفحات-الويب-الديناميكية/آلية-عمل-حذف-المنشورات-وتعديلها

@Adetech
@yahya-alshammout
@saraweb
@asmaa_salih
@sohep
@SamerElhamdo

في حال ما زال أي شيء غير واضح, سأكون سعيد بتوضيحه :wink:

6 Likes

واخيرا انهت جزء الخاص بتعديل المنشورات ^^

1 Like

عمل ممتاز يا كمال :ok_man:

1 Like
1 Like


هل من خطأ

1 Like

شكرا على التواضع اخ ياسر بارك الله فيك

1 Like
1 Like

Hi guys!

1 Like

مـشـاركـة حـلـول تـعـديـل الـمـنـشـورات …

عـنـدي مـشـكـلـة فـي الـصـفـحـه الـرئـيـسيـه فـي الـ HTML يـظـهـر الـمـنـشـور الأول مـضـبـوط بـس الـمـنـشـور الـثـاني يـظـهـر بـهـذا الـشـكـل :point_down::point_down: كـيـف أحـل الـمـشـكـلـه ؟؟!!!

1 Like

عمل جيد @zeekzone … أين ملفات store :thinking:

بقي فقط الـ deploy :grin:

1 Like

المشكلة حلها بسيط جدا، في هذا الجزء:

        {%for post in posts%}

        <article>

        {% endfor %}
        </article>

لاحظي أنه يتم عمل endfor قبلما يتم اغلاق العنصر article (يعني العنصر التالي سيصبح داخل نفس الـ article)، الحل ببساطة جعل endfor بعد article بهذ الشكل:

        {%for post in posts%}

        <article>
        </article>

        {% endfor %}
1 Like

نعم بقي فقط ديبلوي ولكن أريد أن أضيف لمسات شخصية للواجهة الأمامية :upside_down_face:
بعدها سأقوم بتسجيل 20 دقيقة كتصميم للموقع في إطار مسابقة المحتوى العربي

1 Like