Python 在给定使用_TZ=True的条件下,如何在IST自身的db中显示存储在IST中的DateTimeField?
因此,我是Django的新手,已将我的时区设置为“Asia/Kolkata”,并在设置文件中使用_TZ=True。对于数据库中存储在UTC中的日期时间,显示在我的当前时区中。但是,对于数据库中存储在IST中的日期时间,管理员添加+5:30以显示(即,它假定数据库中的值以UTC为单位) 我想找到一种方法,手动告诉那些使用_TZ=False的模型/管理员 我尝试扩展DateTimeField并重写函数get_internal_type以返回CharField而不是DateTime。它也工作得很好。然而,我不明白它在后台是如何工作的Python 在给定使用_TZ=True的条件下,如何在IST自身的db中显示存储在IST中的DateTimeField?,python,django,timezone,Python,Django,Timezone,因此,我是Django的新手,已将我的时区设置为“Asia/Kolkata”,并在设置文件中使用_TZ=True。对于数据库中存储在UTC中的日期时间,显示在我的当前时区中。但是,对于数据库中存储在IST中的日期时间,管理员添加+5:30以显示(即,它假定数据库中的值以UTC为单位) 我想找到一种方法,手动告诉那些使用_TZ=False的模型/管理员 我尝试扩展DateTimeField并重写函数get_internal_type以返回CharField而不是DateTime。它也工作得很好。然
class MyDateTimeField(DateTimeField):
def get_internal_type(self):
return "CharField"
class FileUpload(models.Model):
....
....
created_at = models.MyDateTimeField(auto_now_add=True)
updated_at = models.MyDateTimeField(auto_now=True)
另外,从长远来看,我对模型级别的更改有点担心,我想知道是否还有其他方法可以解决这个问题。来自datetime import datetime 当前时间=datetime.now() 已创建\u at=models.datetime字段(默认值为当前\u time.strftime(“%G-%m-%d%H:%m:%S”),空白值为True) 或 已创建的\u at=models.CharField(默认值为当前\u time.strftime(“%G-%m-%d%H:%m:%S”),blank=True)
如果您不想提供默认时间,那么只需为CharField提供default=''。对于格式化datetime值,我使用了strftime。from datetime import datetime 当前时间=datetime.now() 已创建\u at=models.datetime字段(默认值为当前\u time.strftime(“%G-%m-%d%H:%m:%S”),空白值为True) 或 已创建的\u at=models.CharField(默认值为当前\u time.strftime(“%G-%m-%d%H:%m:%S”),blank=True) 如果您不想提供默认时间,那么只需为CharField提供default=''。对于格式化datetime值,我使用了strftime