首页 > 解决方案 > Python3 和 Django2 中的日期时间对象不一致

问题描述

Python 3,Django 2

我试图让一个函数始终如一地返回一个日期时间对象。

以下是它起作用和不起作用的条件。

我有一个函数可以生成一个带有如下偏移量的日期时间对象:

from django.conf import settings
from datetime import datetime
def off_time():
    date = datetime.now()
    offset = settings.TIME_OFFSET
    offtime = date + offset
    return offtime

TIME_OFFSET 在设置中生成,因此:

from datetime import timedelta
TIME_OFFSET = timedelta(days=370000)

如果我保存到这样的模型对象:

from django.db import models
import stellar.physics_tools
class Test(models.Model):
    cdate = models.DateTimeField(default=stellar.physics_tools.off_time, help_text='When Generated')

然后在 cdate 上工作,我可以这样做:

cdate = test.cdate
creation_date = cdate.strftime("%d-%m-%Y %H:%M:%S")

它工作正常。

但如果我试试这个:

    newtime = stellar.physics_tools.off_time
    return newtime.strftime("%d-%m-%Y %H:%M:%S")

我得到:'function'对象没有属性'strftime'

我需要这个函数来返回一个我可以使用 .strftime 的对象,至少。

任何帮助表示赞赏。谢谢。

标签: python-3.xdatetimedjango-models

解决方案


为此,我需要使用 () 调用函数,如下所示:

newtime = stellar.physics_tools.off_time()

我没有这样做,因为如果我在 Django 模型构造中这样做,它会返回定义类时创建的值,这不是我想要的。

简而言之,我仍然需要在 Django 模型中使用 stellar.physics_tools.off_time,但是当在此之外调用函数时,我需要使用 stellar.physics_tools.off_time()。


推荐阅读