如何在Django模型中处理auto_now_add和auto_now

时间:2019-04-25 05:01:02

标签: django django-models

我有这种模式,每当我更新其中任何一个时,第二期和第三期的日期都相同。如何将不同的日期更新为第二期和第三期?

models.py

class StudentFee(models.Model):
    student = models.CharField(max_length=250)
    total_fee = models.IntegerField(default=0)
    first_installment = models.IntegerField(default=0)
    date_first_installment = models.DateField(auto_now_add=True)
    second_installment = models.IntegerField(default=0)
    date_second_installment = models.DateField(auto_now=True) #updates the same date when third installment updated.HOw can update dufferently
    third_installment = models.IntegerField(default=0)
    date_third_installment = models.DateField(auto_now=True) 
    remaining = models.IntegerField(default=0)

1 个答案:

答案 0 :(得分:0)

auto_now设置了行更新时的当前时间戳,因此只要调用auto_now时,所有save()都将更新。

因此,请勿在要更新的DateTime字段上使用它。

date_second_installment = models.DateField(null=True, blank=True)

或者您可以设置默认时间戳记

date_second_installment = models.DateField(default=timezone.now, null=True, blank=True)

docs