我想存储创建和修改的时间。但是当我使用下面的模型时:
date_created = models.DateTimeField(auto_now_add=True)
date_update_local = models.DateTimeField(auto_now=True)
auto_now_add
无法正常运作。如果我是第一次创建对象,一切正常,我有date_created
的正确值,但如果我修改了存在对象,则date_created
设置为0000-00-00 00:00:00.000000
。
所以我修改了我的代码如下:
Models.py
class Product(models.Model):
reference = models.CharField(max_length=8, unique=True, primary_key=True)
date_created = models.DateTimeField(default=timezone.now)
date_update_local = models.DateTimeField(auto_now=True)
def save(self, *args, **kwargs):
try:
p = Product.objects.get(reference=self.reference)
self.date_created = p.date_created
except self.DoesNotExist:
pass
return super(Product, self).save(*args, **kwargs)
Views.py
p = Product(reference = 'no. ref')
p.save()
我正在检查对象是否存在,如果为True,我将获得最后date_created
值并将其设置为新值。但我认为这是错误的解决方案。