auto_now_add为添加时的时间,更新对象时不会有变动。
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)