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

上一篇: Which timezone does Django use in DateField's auto

下一篇: UIActivityViewController doesn't work in iOS 8