مشكلة في إنشاء موضوع بـ external_id

مرحباً،

  1. تم إنشاء موضوع (باستخدام واجهة برمجة التطبيقات REST) مع حقل “external_id”.
  2. تم حذف هذا الموضوع، وأفترض أن الموضوع سيظل موجودًا في قاعدة البيانات ولكنه سيكون مخفيًا عن المستخدمين.
  3. حاولت إنشاء نفس الموضوع بنفس “external_id”، وحصلت على رسالة “External has already been taken”.

إذا تم حذف الموضوع من وجهة نظر المستخدم، فيجب أن يتمكن المستخدم من إنشاء موضوع جديد بنفس البيانات، ولكن لماذا لا يحدث ذلك؟ يبدو أنه لا توجد طريقة لاستخدام نفس “external_id”. يبدو هذا خطأ.

2022/10/12 12:33:32 resp: &{Status:404 Not Found StatusCode:404 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:32 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Discourse-Route:[topics/show_by_external_id] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[26b86048-937c-451c-ac0c-b23dbcd3c8ca] X-Runtime:[0.013603] X-Xss-Protection:[0]] Body:0xc000183bc0 ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:true Trailer:map[] Request:0xc00030a800 TLS:0xc0000d22c0}
2022/10/12 12:33:32 req: &{Method:GET URL:https://forums.tamillinuxcommunity.org/t/external_id/7N69MKNwQAs.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u]] Body:<nil> GetBody:<nil> ContentLength:0 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:32 {"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
2022/10/12 12:33:32 uploading  https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:32 {"title":"[Youtube] ஆண்ட்ராய்டுக்கான கட்டற்ற மென்பொருள் | FOSS for Android | F-Droid | Tamil","raw":"https://www.youtube.com/watch?v=7N69MKNwQAs\nஇந்த காணொளியில் F-Droid எவ்வாறு பயன்படுத்துவது? அதன் பயன் என்ன ? - என்பதை காண்போம்.\n\nகாணொளி வழங்கியவர்: \nமணிமாறன், விழுப்புரம் கட்டற்ற மென்பொருள் குழுமம்\n\nF-Droid: http://fdroid.org/\n\n#fdroid #fossforandroid #tamil #android #vglug","category":3,"external_id":"7N69MKNwQAs"}

2022/10/12 12:33:33 failed to create Topic: https://www.youtube.com/watch?v=7N69MKNwQAs
2022/10/12 12:33:33 err: <nil>
2022/10/12 12:33:33 resp: &{Status:422 Unprocessable Entity StatusCode:422 Proto:HTTP/2.0 ProtoMajor:2 ProtoMinor:0 Header:map[Cache-Control:[no-cache, no-store] Content-Type:[application/json; charset=utf-8] Date:[Wed, 12 Oct 2022 10:33:33 GMT] Referrer-Policy:[strict-origin-when-cross-origin] Server:[nginx] X-Content-Type-Options:[nosniff] X-Discourse-Route:[posts/create] X-Discourse-Username:[mohan43u] X-Download-Options:[noopen] X-Frame-Options:[SAMEORIGIN] X-Permitted-Cross-Domain-Policies:[none] X-Request-Id:[217f7585-269a-48b3-ac5e-215e02e76bdb] X-Runtime:[0.060606] X-Xss-Protection:[0]] Body:{cs:0xc00032c180} ContentLength:-1 TransferEncoding:[] Close:false Uncompressed:false Trailer:map[] Request:0xc000352100 TLS:0xc0000d22c0}
2022/10/12 12:33:33 req: &{Method:POST URL:https://forums.tamillinuxcommunity.org/posts.json Proto:HTTP/1.1 ProtoMajor:1 ProtoMinor:1 Header:map[Api-Key:[] Api-Username:[mohan43u] Content-Type:[application/json]] Body:0xc0005b0228 GetBody:0x6b0e40 ContentLength:733 TransferEncoding:[] Close:false Host:forums.tamillinuxcommunity.org Form:map[] PostForm:map[] MultipartForm:<nil> Trailer:map[] RemoteAddr: RequestURI: TLS:<nil> Cancel:<nil> Response:<nil> ctx:0xc0000260b8}
2022/10/12 12:33:33 {"action":"create_post","errors":["Title has already been used","External has already been taken"]}

ماذا سيحدث إذا تم إلغاء حذف الموضوع الأول؟

إعجاب واحد (1)

لا توجد طريقة للتراجع عن حذف هذا الموضوع الأول، ولا أرى أيقونة/زر للتراجع عن الحذف.

مرحباً يا موهان. :wave:

أعتقد أن ما كان يشير إليه @RGJ: هذه ليست مشكلة، حيث يستخدم Discourse نهج “الحذف الناعم” افتراضيًا. سيتم استخدام external_id في هذا السياق، وهو حسب التصميم. :+1:

إعجابَين (2)

الأيقونة الخاصة بإلغاء الحذف هي هذه:

وهناك أيضًا خيار في قائمة مفتاح ربط الموضوع:

لا يوجد شيء كهذا

النقطة هي أنه يمكن استعادة موضوع كهذا، وفي هذه الحالة سيكون هناك موضوعان بنفس المعرف الخارجي. من المفترض أن يكون المعرف الخارجي فريدًا، عبر جميع المواضيع، بما في ذلك المواضيع المحذوفة. كما قال @maiki، هذا حسب التصميم.

إعجاب واحد (1)

هل يمكن إلغاء حذفه؟ كيف؟ أريد أيضًا إلغاء حذف هذا الموضوع، وستختفي مشكلتي. ولكن لا توجد طريقة لإلغاء حذف هذا الموضوع.

إما أن يسمح المنتدى باستخدام المعرف الخارجي (external_id) المستخدم في موضوع محذوف، أو يجب أن تكون هناك طريقة لإلغاء حذف الموضوع المحذوف باستخدام هذا المعرف الخارجي. لا أرى أيًا من هذين الأمرين.

لذلك من الواضح أنها مشكلة.

تشير المنشورات أعلاه بوضوح إلى أنه يمكن إلغاء حذف المواضيع. أنك تبدو غير قادر على إلغاء حذف هذا الموضوع المحدد لا يعني أن هذا خطأ، بل سيكون مسألة أذونات أو إعدادات.

هل أنت مسؤول في المنتدى؟

بالمناسبة، يرجى التوقف عن تصنيف هذا على أنه Bug.

إعجاب واحد (1)

هل يجب أن أصنف هذا على أنه خطأ؟

لا، لا يجب عليك ذلك.
من فضلك استخدم الوضع الآمن وانظر ما إذا كان يمكنك القيام بذلك. إذا لم تتمكن من ذلك، فيرجى إخبارنا بالتفصيل عما تراه بدلاً من ذلك. ستساعد لقطات الشاشة.

أخبرني إذا كنت أحاول بطريقة خاطئة

إعجابَين (2)

زر الاستعادة موجود في موضوع “المحذوف”. لذا تحتاج إلى عرضه واستعادته من هناك.

لا يمكنك الوصول إلى القائمة المناسبة من قائمة منشورات المستخدم المحذوفة. يجب عليك الانتقال إلى الموضوع نفسه لرؤية الخيار في القائمة:


@Mohan43u، هل يجيب ذلك على سؤالك الأصلي حول كيفية استخدام external_id؟ :slight_smile:

نعم، ولكن @Mohan43u لديه وجهة نظر، لا توجد طريقة للوصول إلى هناك من قائمة “المشاركات المحذوفة”. فكيف تصل إلى هذا الموضوع؟

أيضًا، ?status=deleted لا يبدو أنه يعمل بعد الآن؟

لا توجد طريقة للذهاب إلى هذا الموضوع المحذوف بخلاف صفحة ملفي الشخصي. لا يمكن الوصول إليه على الإطلاق من الفئات.

/latest?status=deleted يعمل معي على موقع الاختبار الخاص بي؟


آه، فهمت الآن. الفيديو ساعد بالتأكيد. :slight_smile: نعم، عنوان الموضوع لا يظهر حاليًا في المواضيع المحذوفة من هذا العرض. تم طرح هذا سابقًا، ولكن قد يكون الأمر يستحق نظرة أخرى. :+1:

هل يمكنك تجربة [YourSite]/latest?status=deleted ومعرفة ما إذا كان يمكنك الوصول إلى الموضوع من قائمة المواضيع هناك بدلاً من ذلك؟

والآن بعد أن وجدت الموضوع الآخر، هناك أيضًا نصيحة أخرى للانتقال إلى الموضوع المحذوف عبر سجلات الموظفين الخاصة بك أيضًا، إذا كان ذلك مفيدًا:

إعجاب واحد (1)

منتدى نظيف تمامًا، واجتاز الاختبارات صباح اليوم. عندما أقوم بإلغاء حذف الموضوع، فإنه يظهر مرة أخرى في أحدث المشاركات.

اقتراح جيد!!
ولكن سيكون من الرائع حقًا إذا سمح المنشور المحذوف في الملف الشخصي بالانتقال إليه أيضًا.

إعجاب واحد (1)

أعتقد أن لافتة دعوة اتخاذ إجراء الخاصة بتهيئة الموضوع تخفي لافتتك. هل يمكنك محاولة إخفائها في وحدة التحكم الخاصة بك ومعرفة ما إذا كان الموضوع خلفها؟ (أو قم بتحرير لافتة تهيئة الموضوع لإخفاء اللافتة :slight_smile:)

إعجاب واحد (1)

أنت على حق!

هذا رائع (ردك) ومحزن للغاية (السبب) في نفس الوقت.

لذا أصبح لدينا الآن سببان لإعادة تصنيف هذا إلى UX ..

إعجاب واحد (1)

شكراً جزيلاً لك، تمكنت من استعادة هذا الموضوع وعميل واجهة برمجة التطبيقات REST الخاص بي سعيد.

3 إعجابات