मैं एक ManyToManyField इस एक के लिए इसी तरह के साथ एक मॉडल (मॉडल पद एक भाषा है, भी) है:Django ManyToMany मॉडल सत्यापन
class Sentence(models.Model):
words = models.ManyToManyField(Word)
language = models.ForeignKey(Language)
def clean(self):
for word in self.words.all():
if word.language_id != self.language_id:
raise ValidationError('One of the words has a false language')
जब एक नया वाक्य जोड़ने की कोशिश कर (जैसे Django व्यवस्थापक के माध्यम से) मैं 'Sentence' instance needs to have a primary key value before a many-to-many relationship can be used
प्राप्त करें। इसका मतलब है कि मैं इसे सहेजने से पहले self.words तक नहीं पहुंच सकता, लेकिन यह वही है जो मैं करने की कोशिश कर रहा हूं। क्या इसके आसपास काम करने का कोई तरीका है ताकि आप इस मॉडल को फिर भी मान्य कर सकें? मैं वास्तव में मॉडल के फ़ील्ड को सीधे सत्यापित करना चाहता हूं।
मुझे इस अपवाद से संबंधित कई प्रश्न मिले, लेकिन मुझे मेरी समस्या के लिए सहायता नहीं मिली। हम किसी भी सुझाव की सराहना करेंगे!
यदि आप कोई शब्द बनाना चाहते हैं, तो आप यह कैसे मान्य करेंगे कि यह वाक्य के साथ जुड़ा हुआ था? इसकी मॉडल परिभाषा में 'वाक्य' फ़ील्ड नहीं है। – johnklawlor
हर कोई फॉर्म का उपयोग नहीं करता है। मैं Django में यह एक भारी दोष मानते हैं। क्या किसी के पास बेहतर जवाब है? –