النمط - متى يتم إجراء تسلسل لمثيل نموذج Django:الإشارات مقابل طريقة حفظ النموذج

StackOverflow https://stackoverflow.com/questions/131327

  •  02-07-2019
  •  | 
  •  

سؤال

أخطط لإجراء تسلسل لنموذج Django إلى XML عند حفظه أو تحديثه.(سيتم استيراد ملف XML إلى فيلم فلاش).هل من الأفضل الاستماع إلى إشارة post_save() أو pre_save() ثم إجراء التسلسل، أو التعامل معها فقط في save() الخاص بالنموذج

هل كانت مفيدة؟

المحلول

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

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

عادةً ما يكون post_save() هو الأفضل لأنه يعني أن النموذج قد تم حفظه بنجاح، واستخدام pre_save() لا يضمن نجاح الحفظ، لذا لا ينبغي استخدامه لأي شيء يعتمد على اكتمال الحفظ.

نصائح أخرى

مشاركة الحفظ.بهذه الطريقة تكون البيانات الجديدة (سبب إجراء التسلسل) موجودة بالفعل في قاعدة البيانات.سيؤدي ذلك إلى إنشاء جزء أكثر نظافة من التعليمات البرمجية التي يتم أخذها ببساطة من قاعدة البيانات ولا داعي للقلق بشأن إضافة قيمة إضافية.

الطريقة الأخرى التي تتبادر إلى الذهن هي الحفاظ على ملف xml بالتوازي مع قاعدة البيانات.وهذا يعني أنه في save () أضف البيانات إلى قاعدة البيانات وإلى ملف xml.سيكون لهذا حمل أقل بكثير إذا كنت تتعامل مع طاولات ضخمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top