Django在DateField的auto中使用哪个时区
当字段用auto_now_add
属性标记时,Django如何写日期字段?
它是否像datetime.now().date()
或timezone.now().date()
?
换句话说,它使用哪个时区来获取当前日期?
看起来像它使用datetime.date.today()
,这将是系统的本地日期:
db / models / fields / __ init__.py :
class DateField(Field):
...
def pre_save(self, model_instance, add):
if self.auto_now or (self.auto_now_add and add):
value = datetime.date.today()
setattr(model_instance, self.attname, value)
return value
如果你想要一个不同的行为,你可以删除auto_now_add=True
然后将模型的pre_save
信号连接到一个接收器,它会将你的字段设置为你选择的日期。
或者,您可以覆盖模型的save
方法并在该处设置字段。
Django默认使用您的settings.py TIME_ZONE属性中提到的时区。
默认情况下,它被设置为类似于:
TIME_ZONE = 'UTC'
关于它的用法的更多细节可以在这里找到:
https://docs.djangoproject.com/en/1.7/topics/i18n/timezones/
链接地址: http://www.djcxy.com/p/81977.html