कृपया नीचे दिए गए कोड को देखते हैं। असल में, जब उपयोगकर्ता इस वर्ग का ऑब्जेक्ट बनाता है, तो उन्हें value_type
निर्दिष्ट करने की आवश्यकता होती है। यदि value_type==2
(प्रतिशत), तो percentage_calculated_on
(जो फ़ॉर्म/टेम्पलेट पक्ष पर एक चेकबॉक्स चयन करें बहुमत है, एक या अधिक आइटमों की जांच की आवश्यकता है। मॉडल सत्यापन मुझे अनुमति देने की अनुमति नहीं दे रहा है जैसा कि मैं कोशिश कर रहा हूं - यह मूल रूप से फेंकता है अपवाद है कि मुझसे कहता है उदाहरण के अनेक-से-अनेक संबंध इस्तेमाल किया जा सकता से पहले एक प्राथमिक कुंजी मान होना चाहिए कि। लेकिन मैं पहले सहेजने से पहले वस्तु को मान्य करने की जरूरत है। मैं फार्म (modelform) की ओर इस मान्यता की कोशिश की है (फार्म के स्वच्छ विधि का उपयोग कर), लेकिन एक ही बात भी वहाँ होता है।Django manytomany सत्यापन
मैं इस मान्यता प्राप्त करने के बारे जाते हैं?
INHERENT_TYPE_CHOICES = ((1, 'Payable'), (2, 'Deductible'))
VALUE_TYPE_CHOICES = ((1, 'Amount'), (2, 'Percentage'))
class Payable(models.Model):
name = models.CharField()
short_name = models.CharField()
inherent_type = models.PositiveSmallIntegerField(choices=INHERENT_TYPE_CHOICES)
value = models.DecimalField(max_digits=12,decimal_places=2)
value_type = models.PositiveSmallIntegerField(choices=VALUE_TYPE_CHOICES)
percentage_calculated_on = models.ManyToManyField('self', symmetrical=False)
def clean(self):
from django.core.exceptions import ValidationError
if self.value_type == 2 and not self.percentage_calculated_on:
raise ValidationError("If this is a percentage, please specify on what payables/deductibles this percentage should be calculated on.")
मैंने मनोज गोविंदन के उत्तर को "स्वीकृत" के रूप में चिह्नित किया है क्योंकि यह समस्या हल करता है। हालांकि, मैं अभी भी Django के मॉडल सत्यापन का उपयोग करके इसे सत्यापित करना चाहता हूं। तो अगर किसी के पास कोई विचार है, तो इसे यहां पोस्ट करने का प्रयास करें। धन्यवाद। – chefsmart
एक ही प्रश्न: http://stackoverflow.com/questions/7986510/django-manytomany-model- validation – user920391