Python auto_now_add和timezone.now作为默认值之间的差异

Python auto_now_add和timezone.now作为默认值之间的差异,python,django,django-models,django-database,Python,Django,Django Models,Django Database,Django车型的auto\u now\u add和timezone.now(默认值)之间有什么区别? 例如: create\u date=models.datetime字段(auto\u now\u add=True) 及 create_date=models.DateTimeField(默认值=timezone.now) ? UPD。我说的是我总是不覆盖默认值的情况。看起来Django也做了同样的时区。现在() def pre_save(self、model_实例、add): 如果sel

Django车型的
auto\u now\u add
timezone.now
(默认值)之间有什么区别? 例如:

create\u date=models.datetime字段(auto\u now\u add=True)

create_date=models.DateTimeField(默认值=timezone.now)
?


UPD。我说的是我总是不覆盖默认值的情况。

看起来Django也做了同样的
时区。现在()

def pre_save(self、model_实例、add):
如果self.auto\u now或(self.auto\u now\u add and add):
value=timezone.now()
setattr(model_实例,self.attname,value)
返回值
其他:
返回super(DateTimeField,self).pre_保存(model_实例,add)

唯一的区别是python调用时区的时刻。now()
,但这应该是纳秒级的区别。

看起来Django在
保存前执行相同的
时区。now()

def pre_save(self、model_实例、add):
如果self.auto\u now或(self.auto\u now\u add and add):
value=timezone.now()
setattr(model_实例,self.attname,value)
返回值
其他:
返回super(DateTimeField,self).pre_保存(model_实例,add)
唯一的区别是python调用时区的时刻。now()
,但这应该是纳秒级的区别。

解释:

auto\u now\u add=True将在保存模型时创建日期

默认值=时区。现在将是带时区的默认日期,您必须输入带时区的日期

链接到说明:

说明:

auto\u now\u add=True将在保存模型时创建日期

默认值=时区。现在将是带时区的默认日期,您必须输入带时区的日期

链接到解释:

default
提供了保存实例时的默认值,但没有字段值,但仍然意味着该字段是用户可编辑的,因此有人可以输入字段值

auto\u now
auto\u now\u add
表示该字段不是用户可编辑的,必须始终设置为该值

有人贴了这个

default
提供了保存实例时的默认值,但没有字段值,但仍然意味着该字段是用户可编辑的,因此有人可以输入字段值

auto\u now
auto\u now\u add
表示该字段不是用户可编辑的,必须始终设置为该值


有人贴了这封信。

我想这两封信都会在TZ上。还是不?为什么<代码>必须输入日期<代码>,我可以始终使用默认值?该字段上没有blank=True,null=True,因此默认情况下不能绕过它。Django将使用默认时区保存datetime。现在在每个保存方法中。我认为这两种方法都将使用TZ。还是不?为什么<代码>必须输入日期<代码>,我可以始终使用默认值?该字段上没有blank=True,null=True,因此默认情况下不能绕过它。Django将在每个保存方法中使用默认时区.now保存datetime。