मैं कुछ कोड है कि इस तरह दिखता है मिल गया है से एक मॉडल फील्ड का डिफ़ॉल्ट मान ओवरराइड करने के लिए कैसे:एक सार बेस कक्षा
class BaseMessage(models.Model):
is_public = models.BooleanField(default=False)
# some more fields...
class Meta:
abstract = True
class Message(BaseMessage):
# some fields...
और मैं is_public
क्षेत्र का डिफ़ॉल्ट मान ओवरराइड करना चाहते हैं संदेश मॉडल में ताकि यह उस मॉडल के लिए True
है।
मैंने कुछ प्रासंगिक Django दस्तावेज़ों को देखा है और मॉडल ऑब्जेक्ट्स के चारों ओर पोक किया है, लेकिन मुझे ऐसा करने के लिए सही जगह खोजने में परेशानी हो रही है। कोई सुझाव?
यह मेरे लिए काम किया। मेरे मामले में मैं सहायता पाठ ओवरराइड कर रहा था। इस कोड को प्रारंभकर्ता में स्थानांतरित करने के लिए और अधिक समझदारी हुई, इसलिए मेरे पास है: def __init __ (स्वयं, * तर्क, ** kwargs): सुपर (MyModelClass, self) .__ init __ (* args, ** kwargs) self._meta.get_field ('mymodelfield')। help_text = self.help_text() – Mark
मैं इसे "अद्वितीय" विशेषता के लिए आज़माता हूं, लेकिन मुझे यह मिलता है: 'विशेषता त्रुटि: विशेषता सेट नहीं कर सकता'। – guettli
@guettli वही यहाँ। 'अद्वितीय' सेट करने के लिए काम नहीं कर रहा है। यह Django 1.7 पर है। –