2011-03-16 10 views
6

मान लीजिए मैं निम्नलिखित मॉडल Django (परीक्षण नहीं) में परिभाषित:Django: एक क्षेत्र के लिए मजबूर अद्वितीय होने के लिए सभी मॉडल के साथ वस्तुओं एक ही विदेशी कुंजी

class CarMaker(models.Model): 
    name = models.CharField("Name of car maker", 
          max_length=40) 


class Car(models.Model): 
    car_id = models.IntegerField("ID for this particular car") 
    maker = models.ForeignKey("Maker of this car") 

एक मानक Django तरह से है कि यह सुनिश्चित करने के है एक ही maker के साथ सभी Car रों car_idसभीCar रों के लिए अद्वितीय बनाने के बिना एक अनूठा car_id है,?

उदा। दो कार निर्माता, "स्कोडा" और "रेनॉल्ट" हैं। स्कोडा द्वारा निर्मित 400 Car एस और रेनॉल्ट द्वारा निर्मित 300 Car एस हैं। मैं यह सुनिश्चित करना चाहता हूं कि car_id सभी स्कोडास के लिए अद्वितीय है, और सभी पुनर्जागरणों के लिए अद्वितीय है, लेकिन सभी Car एस के लिए आवश्यक नहीं है।

धन्यवाद

उत्तर

11

आप मॉडल विकल्पों unique_together का उपयोग बाधा के इस प्रकार बनाने के लिए कर सकते हैं। Django दस्तावेज़ देखें: http://docs.djangoproject.com/en/1.2/ref/models/options/#unique-together

class Car(models.Model): 
    car_id = models.IntegerField("ID for this particular car") 
    maker = models.ForeignKey("Maker of this car") 

    class Meta(object): 
     unique_together = ("car_id", "maker") 
+0

धन्यवाद, ठीक वही मैं जो खोज रहा था। और दस्तावेज़ों को जोड़ने के लिए +10 :) – pisswillis

संबंधित मुद्दे