我想添加我根据用户输入创建的datetime对象。但我想在这个模型中添加这个没有时区的东西。我尝试了几种不同的方式但没有工作。
models.py
class troops_command(models.Model):
datetime = models.DateTimeField('ki')
我如何创建对象:
datetime_object = datetime_module.datetime.strptime(datetime_string, format_datetime)
import pytz
datetime_object = pytz.timezone("Europe/London").localize(datetime_object, is_dst=None)
之后:
>>> print(datetime_object)
2014-11-22 14:49:00+00:00
但是当我把它添加到数据库时:
Troops_command_model.objects.create(datetime=datetime)
数据库返回:
2014-11-22 15:49:00+01
settings.py
TIME_ZONE = 'Europe/Warsaw'
答案 0 :(得分:4)
只需创建自定义模型字段:)简单易用。
class MytypeField(models.Field):
def db_type(self, connection):
return 'timestamp'
class Test(models.Model):
name = models.CharField(max_length=80)
something_else = MytypeField()
“timestamp”用于postgresql,对于mysql应为“datetime”
答案 1 :(得分:1)
CONST USE_TZ
<强> USE_TZ 强>
默认值:False
一个布尔值,指定日期时间是否默认为时区感知。如果将其设置为True,Django将在内部使用时区感知日期时间。否则,Django将在当地时间使用天真的日期时间。django-admin.py startproject创建的默认 settings.py 文件包含USE_TZ = True,以方便使用。
因此,您可以更改此设置,查看更多django settings docs
尝试使用enter link description here。或尝试使用pytz创建自定义字段 - &gt; tutorial 强>