2010-12-18 1 views
10

मैं कुछ ऑडिटिंग फ़ील्ड के साथ डीजेंगो में एक मॉडल तैयार करने की कोशिश कर रहा था। जैसे बनाया गया, द्वारा निर्मित, अद्यतन और अद्यतन किया गया। उन चार कॉलमों को विभिन्न अनुप्रयोगों में मेरे सभी मॉडलों में दोहराया जा रहा है।django, से संबंधित_नाम क्या है? और मैं परियोजना में उपयोग करने के लिए साझा कॉलम कैसे बना सकता हूं?

मेरा पहला सवाल, क्या उन स्तंभों को रखने का कोई तरीका है और उन्हें हर बार मेरी कक्षा में शामिल कर सकते हैं?

मेरा दूसरा प्रश्न, नीचे दिए गए कोड में related_name विशेषता का बिंदु क्या है? इसके बिना कोड एक त्रुटि लौटाएगा, साथ ही मूल्य पूरे ऐप में अद्वितीय होना चाहिए। क्या यह हमेशा अनूठा सुनिश्चित करने का कोई तरीका है?

class Poll(models.Model): 
    question=models.CharField(max_length=300) 
    start_poll_at=models.DateTimeField(null=True) 
    end_poll_at=models.DateTimeField(null=True) 
    is_active=models.BooleanField(default=True) 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 


class Choice(models.Model): 
    choice=models.CharField(max_length=200) 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 

धन्यवाद

उत्तर

7

इस प्रयास करें:

class AbstractClass(models.Model): 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 
    class Meta: 
     abstract = True 

और फिर अन्य मॉडलों के लिए आधार के रूप में उपयोग: http://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes

:

class Poll(AbstractClass): 
    question=models.CharField(max_length=300) 
    start_poll_at=models.DateTimeField(null=True) 
    end_poll_at=models.DateTimeField(null=True) 
    is_active=models.BooleanField(default=True) 

यह इस बारे में Django प्रलेखन है रिला के लिए

+1

टेड नाम: http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name – crodjer

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