मेरे पास कुछ फ़ील्ड हैं जिन्हें मैं अपने प्रोजेक्ट में सबसे अधिक मॉडल में जोड़ना चाहता हूं। उदाहरण के लिए, ये फ़ील्ड "ट्रैकिंग फ़ील्ड" जैसे एक निर्मित दिनांक, एक अद्यतन दिनांक और एक "सक्रिय" ध्वज हैं। मैं एक मिक्सिन बनाने का प्रयास कर रहा हूं जिसे मैं प्रत्येक मॉडल वर्ग में जोड़ सकता हूं जो मुझे इन अतिरिक्त क्षेत्रों को एकाधिक विरासत के माध्यम से जोड़ने की अनुमति देगा। हालांकि, जब कोई ऑब्जेक्ट इंस्टेंस बनाया जाता है, तो ऐसा लगता है कि मिक्सिन के माध्यम से जोड़े गए मेरे मॉडल फ़ील्ड डेटाबेस फ़ील्ड के बजाए ऑब्जेक्ट के तरीकों के रूप में दिखाई देते हैं।Django: पुन: प्रयोज्य मॉडल फ़ील्ड के लिए एक मिक्सिन बनाना
from django.db import models
class Blog(models.Model, TrackingFieldMixin):
name = models.CharField(max_length=64)
type = models....
class TrackingFieldsMixin():
active = models.BooleanField(default=True,
help_text=_('Indicates whether or not this object has been deleted.'))
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
तो यह काम करने के लिए प्रकट नहीं होता है:
In [18]: Blog.objects.all()[0].created
Out[18]: <django.db.models.fields.DateTimeField object at 0x10190efd0>
यहाँ मेरी मॉडल कैसे दिखाई देते है। क्या किसी को पता है कि मैं ऊपर के समान मॉडल मॉडल के लिए पुन: प्रयोज्य मिश्रण कैसे बना सकता हूं? क्या इस दृष्टिकोण में कोई दोष है?
आप के लिए धन्यवाद मदद, जो
अद्यतन: ध्यान दें कि अपने मॉडल में से कुछ है कि मैं की योजना उपयोग में mixin MPTT मॉडल का उपयोग करने के लिए, तो मैं बस आधार वर्ग Mixin मेरी TrackingFieldMixin नहीं कर सकते हैं और केवल इससे प्राप्त होता है।
class Post(MPTTModel, TrackingFieldMixin):
post_name = models....
post_type = models...
धन्यवाद Sdolan। मैं इसे काम करने में सक्षम था। मुझे वास्तव में बूलियन के बजाय हटाए गए आइटमों के लिए दिनांक फ़ील्ड का उपयोग पसंद है। Deletes के साथ ही जोड़ों को ट्रैक करने में सक्षम होने के लिए अच्छा है। –
@ जो जे: आपका बहुत स्वागत है। और हां, इसकी आवश्यकता होने से पहले उस अतिरिक्त जानकारी को हमेशा रखना बहुत अच्छा होता है। साथ ही, मैं अक्सर ऑडिटिंग उद्देश्यों के लिए हटाए गए_बी कॉलम को संग्रहीत करता हूं, भले ही मुझे इसकी आवश्यकता नहीं होगी। – sdolan