2015-06-27 12 views
5

मैं एक Django मॉडल में एक updated_at क्षेत्र है कि इस तरह दिखता है में क्षेत्र में अद्यतन:Django मॉडल

class Location(models.Model): 
    updated_at = models.DateTimeField(auto_now=True, default=timezone.now()) 

मॉडल बस जब मॉडल पहले updated_at में बनाया गया था वर्तमान समय की बचत होती बनाया गया था, तो खेत। यदि मॉडल पिछले घंटे के भीतर अपडेट किया गया था तो मैं कुछ विशेष करने के लिए इसका उपयोग कर रहा हूं। समस्या यह है कि मैं केवल ऐसा करना चाहता हूं अगर मॉडल पिछले घंटे में अपडेट किया गया था कि मॉडल बनाया गया था या नहीं। मॉडल को पिछले घंटे में अपडेट किया गया था या यदि मॉडल पिछले घंटे में बनाया गया था तो मैं कैसे अंतर कर सकता हूं?

+0

तुम भी निम्न प्लग इन https://pypi.python.org/pypi/django-timestampable-model/0.1.3 कोशिश कर सकते हैं – Laky

उत्तर

11

मैं सिर्फ मॉडल पर 2 क्षेत्रों, बनाया के लिए और दूसरा कि इस

class Location(models.Model): 
    created_at = models.DateTimeField(auto_now_add=True) 
    updated_at = models.DateTimeField(auto_now=True) 

की तरह समय अद्यतन रिकॉर्ड आप Django मॉडल-utils उपयोग कर रहे हैं आप TimeStampedModel, जो दोनों है उपवर्ग कर सकते हैं के लिए होता है बनाया और संशोधित फ़ील्ड।

#Django model utils TimeStampedModel 
class TimeStampedModel(models.Model): 
    """ 
    An abstract base class model that provides self-updating 
    ``created`` and ``modified`` fields. 

    """ 
    created = AutoCreatedField(_('created')) 
    modified = AutoLastModifiedField(_('modified')) 

    class Meta: 
     abstract = True 

class Location(TimeStampedModel): 
    """ 
    Add additional fields 
    """