Wednesday 15 August 2012

python - Create a Django model with referencing Models in Manager class -


Django 1.5 और Python 2.7 का उपयोग करें और ये उदाहरण मॉडल:

  class कंपनी (मॉडल मॉडल): नाम = मॉडल.कारफिल्ड (अधिकतम_लांबी = 100) ईमेल = मॉडल.एमेलफिल्ड () क्लास शोरूम (मॉडल.मॉडेल): नाम = मॉडल.खरीफिल्ड (अधिकतम_लांबी = 100) कंपनी = मॉडल.आर्यज्ञकी (कंपनी)   

मैं डिफ़ॉल्ट रूप से "शोरूम" के साथ एक "कंपनी" बनाने के बारे में कैसे जाना होगा। मुझे पता है कि मैं इसे इस दृश्य में कर सकता हूं, उदा।

  company = models.Company (name = name, email = email) company.save () showroom = models.Showroom (name = name, company = company) showroom.save ()   < P> और मैंने एक प्रबंधक का उपयोग करने की कोशिश की:  
  श्रेणी CompanyManager (models.Manager): def create_company (स्वयं, नाम, ईमेल): कंपनी = self.create (name = name, email = ई-मेल) company.save () # & lt; - इस लाइन उपयोगकर्ता की तरह नॉट - यूजर। बॉब। स्पॉट_युसर (नाम, ईमेल, 'जेनरेट') शोरूम = शोरूम (नाम = नाम, कंपनी = कंपनी) showroom.save () रिटर्न कंपनी  < / पूर्व> 

क्या मैं अपना शोरूम बनाने के लिए सहेजे बिना सहेजे कंपनी का उपयोग कर सकता हूँ? यदि नहीं, तो मुझे इसे सहेजना होगा, लेकिन यह इस सम्मेलन को तोड़ रहा है कि मैनेजर बिना सहेजे हुए आवेश देता है (या क्या मैं गलत हूं?)।

क्या कोई रणनीति तैयार कर सकता है?

धन्यवाद!

मैं एक "कंपनी" के साथ एक डिफ़ॉल्ट "शोरूम" बनाने के बारे में कैसे जाना होगा?

मॉडल कंपनी की सहेजने की पद्धति को ओवरराइड करें या मॉडल कंपनी पर एक सिग्नल को बचाने के लिए पंजीकरण करें।

क्या मैं अपना शोरूम बनाने के लिए सहेजे न गए कंपनी का उपयोग कर सकता हूं?

नहीं।

नवीनीकृत:

  क्लास कंपनी (models.Model): name = models.CharField (max_length = 100) ईमेल = models.EmailField () def save (* args, ** Kwargs): सुपर (कंपनी, स्वयं)। बचत (* आर्ग्स, ** kwargs) self.showroom__set.create (नाम = self.name)   

Berdus द्वारा अद्यतन:

  क्लास कंपनी (models.Model): name = models.CharField (max_length = 100) ईमेल = models.EmailField () def save (self, * args, ** kwargs): is_first_save = self.pk है कोई भी सुपर (कंपनी, स्वयं)। Save (* args, ** kwargs) if_first_save: self.sho Wroom_set.create (name = self.name)   

सहेजने में स्वयं तर्क और showroom_set पर एकल अंडरस्कोर पर ध्यान दें।

No comments:

Post a Comment