यहाँ एक उदाहरण है:Django में कई क्षेत्रों को कैसे अपडेट करें?
अगर मैं इन कक्षाओं
class Author(models.Model):
name = models.CharField(max_length=45)
class Book(models.Model):
name = models.CharField(max_length=45)
authors = models.ManyToManyField(Author)
डेटाबेस में मैं नाम "जॉर्ज" और नाम "Georfe" के साथ एक और एक के साथ एक लेखक होता है। आखिरी एक गलती है। तो मैं जो चाहता हूं वह हर पुस्तक में है जिसमें "जॉर्ज" है क्योंकि उसके लेखक में से एक लेखक "जॉर्ज" द्वारा प्रतिस्थापित किया गया है।
एसक्यूएल में करना वास्तव में आसान है। "जॉर्ज" = 3 की आईडी और "Georfe" = 7 की आईडी और संबंध तालिका नाम "author_book" है:
UPDATE author_book SET id=3 WHERE id=7;
यह करने के लिए है कि Django ORM के साथ संभव है? गलत लिखे गए लेखक की सभी संबंधित पुस्तकें मैं पाश गर्त और कार्य करें::
मैं यह करने के लिए एक रास्ता मिल गया
book.authors.add(Author.objects.get(id=3))
book.authors.remove(Author.objects.get(id=7))
लेकिन मैं इस समाधान वास्तव में सुंदर और कुशल नहीं मिल रहा है। लूप के बिना कोई समाधान है?
यदि यह कुछ टाइपो को ठीक करने का एक बार सौदा है, तो कच्चे एसक्यूएल को क्यों न चलाएं? – thedz
डेटाबेस में डेटा पुराने फाइलमेकर डीबी से आ रहा है और ठीक करने के लिए बहुत सारे टाइपो हैं। मैं अपने द्वारा सभी टाइपो को ठीक नहीं करना चाहता हूं। मेरी इच्छा है कि मेरा ग्राहक इसे व्यवस्थापक इंटरफ़ेस में कर सके। – Etienne