django 모형 시간 스탬프 관리

1398 단어 django
auto_now_dd가 추가되었을 때, 대상을 업데이트할 때 변동이 없습니다.
auto_now 당신이 대상을 추가하든 수정하든 시간은 당신을 위해 추가하거나 수정하는 시간입니다.
이 두 파라미터가 있는 필드는editable=False를 계승하기 때문에django admin에서 그들을 표시하지 않습니다.
 auto_now는 잘 사용하지 않기 때문에 이 두 파라미터를 사용하지 않고 스스로 관리합니다.
하나의 작은 예:
# -*- coding=utf-8 -*-
# Created Time: 2016 04 14      15 21 10 
# File Name: 09_models_save.py

'''
        sava()  
'''

from __future__ import unicode_literals

from django.db import models
from django.utils import timezone
from django.contrib.postgres.fields import JSONField, ArrayField
from django.utils.encoding import python_2_unicode_compatible


@python_2_unicode_compatible
class Order(models.Model):
    '''     '''

    #    
    order_id = models.BigIntegerField(db_index=True)
    #    
    penalty  = models.FloatField(default=0.0)
    #       
    created  = models.DateTimeField()
    #       
    updated  = models.DateTimeField()

    class Meta:
        ordering = ['-updated']
        unique_together = ('order_id',)

    def __str__(self):
        return str(self.order_id)

    def save(self, *args, **kwargs):
        ''' On save, update timestamps '''
        if not self.id:
            self.created = timezone.now()
        self.updated = timezone.now()
        return super(Order, self).save(*args, **kwargs)

좋은 웹페이지 즐겨찾기