📜  选项 auto_now、auto_now_add 和 default 是互斥的.可能只存在这些选项之一. - Python (1)

📅  最后修改于: 2023-12-03 14:58:01.255000             🧑  作者: Mango

选项 auto_now、auto_now_add 和 default 是互斥的

在 Django 中的模型中,有三个选项可以用来处理日期时间字段:auto_nowauto_now_adddefault。但这三个选项是互斥的,不能同时使用,只能存在其中之一。下面对每个选项做详细介绍。

auto_now

使用 auto_now 选项可以让 Django 在每次保存模型实例时自动把当前时间赋值给该字段,以表示这个模型实例最后一次被修改所发生的时间。如果字段被修改,它的值也会被更新。

last_modified = models.DateTimeField(auto_now=True)
auto_now_add

使用 auto_now_add 选项则可以让 Django 在该模型实例第一次被创建的时候,将该字段赋值为当前时间,以表示该模型实例的创建时间。即使该模型实例后来发生了变化,该字段的值也不会再次更新。

created_time = models.DateTimeField(auto_now_add=True)
default

最后一个选项,default,则用于定义字段在未手动赋值时的默认值。我们可以在字段的定义中设定这个默认值。

updated_time = models.DateTimeField(default=timezone.now)

以上就是这三个选项的详细介绍。由于它们之间互斥,我们只能使用其中之一。