के माध्यम से संबंधित ऑब्जेक्ट हटाएं क्या इस स्थिति में डिलीट करने का कोई चालाक तरीका है?OneToOneField
class Bus(models.Model):
wheel = OneToOneField(Wheel)
class Bike(models.Model):
wheel = OneToOneField(Wheel)
pedal = OneToOneField(Pedal)
class Car(models.Model):
wheel = OneToOneField(Wheel)
class Wheel(models.Model):
somfields
car = Car()
wheel = Wheel()
wheel.save()
car.wheel = wheel
car.save()
car.delete() # I want to delete also wheel (and also all stuff pointing via OneToOneField eg pedal)
मैं कार, बाइक, बस मॉडलों में से हटाने के तरीकों को ओवरराइड करने की जरूरत है या वहाँ कुछ बेहतर तरीका है? अन्य विकल्प व्हील मॉडल पर फ़ील्ड कार, बाइक, बस बनाना है, लेकिन इससे ज्यादा समझ नहीं आती है।
समस्या कर यह नहीं कहा जा जाएगा' विधि है कि यदि आप थोक के रूप में हटाने की कार्रवाई कर यह नहीं कहा जा जाएगा 'Car.objects.filter() हटाएं()' – Rohan
@ रोहन हाँ आप सही हैं। थोक हटाने के संचालन के लिए उर्फ। django दस्तावेज़ों द्वारा सलाह दी गई क्वेरीसेट्स - https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.delete django सिग्नल 'post_delete' सजावट का उपयोग करें। –
@ रोहन उपरोक्त django दस्तावेज़ लिंक के लिए एक अंश निर्दिष्ट करने के लिए - >> हटाएं() विधि एक थोक हटा देता है और आपके मॉडल पर किसी भी डिलीट() विधियों को कॉल नहीं करता है। हालांकि, यह सभी हटाए गए ऑब्जेक्ट्स (कैस्केड डिलीशन सहित) के लिए pre_delete और post_delete संकेतों को छोड़ देता है। –