2012-12-28 14 views
6

मैं इन दो वर्गों मिल गया है:OneToOneField खाली क्षेत्र की अनुमति नहीं है

class Bill(models.Model): 
    date = models.DateField() 
    total_amount_chf = models.DecimalField('Cost (in CHF)', max_digits=10, decimal_places=2) 

class ProjectParticipation(models.Model): 
    project = models.ForeignKey('Project') 
    user = models.ForeignKey(User) 
    is_admin = models.BooleanField() 
    bill = models.OneToOneField(Bill, on_delete=models.SET_NULL, null=True, blank=True) 

जब मैं अब एसक्यूएल-डेटाबेस मैं ProjectParticipation के लिए तालिका में निम्नलिखित क्षेत्र मिल का निर्माण कर रहा हूँ :

bill_id integer NOT NULL, 
CONSTRAINT expenses_projectparticipation_bill_id_fkey FOREIGN KEY (bill_id) 
    REFERENCES expenses_bill (id) MATCH SIMPLE 
    ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED, 

और अब जब मैं मैं bill_id एक "कॉलम में शून्य मान" मिल विधेयक के बिना एक ProjectParticipation सम्मिलित करना चाहते हैं "नहीं-अशक्त बाधा का उल्लंघन करती है"।

इसके खिलाफ क्या करना है?

+0

'बिल' की श्रेणी कक्षा 'प्रोजेक्टपार्टेशन' –

+0

से पहले होनी चाहिए यह वास्तव में पहले है, बस इसे यहां गलत तरीके से चिपकाया। मैं बस इसे बदल दूंगा। – melbic

+0

क्या आपने डीबी को सिंक करने के बाद बाद में नल कंसट्रेंट जोड़ा होगा। डेटाबेस हटाएं और डीबी को फिर से सिंक करें (यदि आप दक्षिण का उपयोग नहीं कर रहे हैं तो अन्यथा सुनिश्चित करें कि आपने स्कीमा परिवर्तन माइग्रेट कर दिए हैं)। –

उत्तर

6

क्या आप डेटाबेस को सिंक करने के बाद Null Constraint जोड़ सकते हैं। डेटाबेस हटाएं और डेटाबेस को दोबारा सिंक करें (यदि आप Django-South का उपयोग नहीं कर रहे हैं अन्यथा सुनिश्चित करें कि आपने स्कीमा परिवर्तन माइग्रेट कर दिए हैं)

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