โดยทั่วไปสัญญาณบันทึก / ลบเป็นสิ่งที่ดีในสถานการณ์ที่คุณจำเป็นต้องทำการเปลี่ยนแปลงซึ่งไม่เฉพาะเจาะจงกับรุ่นที่เป็นปัญหาหรืออาจใช้กับโมเดลที่มีบางอย่างเหมือนกันหรืออาจกำหนดค่าเพื่อใช้กับโมเดลต่างๆ
งานทั่วไปอย่างหนึ่งในsave
วิธีการที่ถูกลบล้างคือการสร้างทากโดยอัตโนมัติจากช่องข้อความบางส่วนในโมเดล นั่นคือตัวอย่างของบางสิ่งที่หากคุณต้องการนำไปใช้กับรุ่นต่างๆจะได้รับประโยชน์จากการใช้pre_save
สัญญาณโดยที่ตัวจัดการสัญญาณสามารถใช้ชื่อของฟิลด์กระสุนและชื่อของฟิลด์เพื่อสร้างกระสุนได้ เมื่อคุณมีสิ่งที่ต้องการแล้วฟังก์ชันการทำงานขั้นสูงใด ๆ ที่คุณวางไว้จะนำไปใช้กับทุกรุ่นเช่นการค้นหากระสุนที่คุณกำลังจะเพิ่มสำหรับประเภทของโมเดลที่เป็นปัญหาเพื่อให้แน่ใจว่ามีเอกลักษณ์
แอปพลิเคชันที่ใช้ซ้ำได้มักจะได้รับประโยชน์จากการใช้สัญญาณ - หากฟังก์ชันที่มีให้สามารถนำไปใช้กับรุ่นใดก็ได้โดยทั่วไป (เว้นแต่จะหลีกเลี่ยงไม่ได้) จะไม่ต้องการให้ผู้ใช้ต้องแก้ไขแบบจำลองโดยตรงเพื่อให้ได้รับประโยชน์จากสิ่งนี้
ตัวอย่างเช่นด้วยdjango-mpttฉันใช้pre_save
สัญญาณเพื่อจัดการชุดของเขตข้อมูลซึ่งอธิบายโครงสร้างต้นไม้สำหรับโมเดลที่กำลังจะสร้างหรืออัปเดตและpre_delete
สัญญาณเพื่อลบรายละเอียดโครงสร้างต้นไม้สำหรับวัตถุที่ถูกลบและทั้งหมด โครงสร้างย่อยของวัตถุก่อนหน้านั้นและจะถูกลบ เนื่องจากการใช้สัญญาณผู้ใช้ไม่จำเป็นต้องเพิ่มหรือแก้ไขsave
หรือdelete
วิธีการในแบบจำลองเพื่อให้การจัดการนี้เสร็จสิ้นพวกเขาเพียงแค่แจ้งให้ django-mptt ทราบว่าต้องการให้จัดการโมเดลใด