因此,我是Django的新手,并且在设置文件中将我的时区设置为“亚洲/加尔各答”,并且将USE_TZ = True设置为True。对于存储在数据库中UTC中的日期时间,显示在我当前的时区中。但是,对于存储在数据库中IST中的日期时间,管理员为显示添加了+5:30(即,假定db中的值以UTC为单位)
我想找到一种方法手动告诉那些模型/管理员USE_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)
从长远来看,我对模型级别的更改还是有些警惕,想知道是否还有其他方法可以解决此问题。
答案 0 :(得分:0)
从日期时间导入日期时间
current_time = datetime.now()
created_at = models.DateTimeField(default = current_time.strftime(“%G-%m-%d%H:%M:%S”),空白= True)
或
created_at = models.CharField(默认= current_time.strftime(“%G-%m-%d%H:%M:%S”),空白= True)
如果您不想提供默认时间,只需为CharField设置default =''。为格式化日期时间值,我使用了strftime。