Django创建/更新了DateTimeField的不同值

时间:2017-02-09 14:14:26

标签: python mysql django django-models mysql-python

我想存储创建和修改的时间。但是当我使用下面的模型时:

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值并将其设置为新值。但我认为这是错误的解决方案。

0 个答案:

没有答案