首页 > 解决方案 > 如何单独设置 TimeField 00:00:00:在 django 中

问题描述

在这里,我在此日期字段中提到了我的 model.py,默认我想将时区分配为 00:00:00,所以请帮我这样做。

模型.py

class Dummy(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField(null=True,auto_now_add=True)

预期输出如

{
    "id": 1,
    "name": "xxxx",
    "date": "2018-09-26T00:00:00Z"
}

实际输出

{
    "id": 1,
    "name": "xxxx",
    "date": "2018-09-26T05:52:26.626604Z"
}

标签: pythondjangodjango-models

解决方案


来自 Field.default 的 Django 文档:

字段的默认值。这可以是一个值或可调用对象。如果可调用,则每次创建新对象时都会调用它。

所以这样做:

from datetime import datetime, timedelta

def default_start_time():
    now = datetime.now()
    start_time = now.replace(hour=00, minute=0, second=0, microsecond=0)
    return start_time 

class Dummy(models.Model):
    name = models.CharField(max_length=100)
    date = models.DateTimeField(null=True,auto_now_add=True,default=default_start_time)

推荐阅读