python - 在 Django 中减去日期时间 - 无输出

标签 python django python-2.7

我想在我的 Django 应用程序中获取用户帐户的“年龄”。这就是我所做的:

class UserData(models.Model):
    user = models.ForeignKey(User,unique=True)
    birth = models.IntegerField(default=1900)
    gender = models.CharField(max_length=1)

    @property
    def isNew(self):
        if (datetime.datetime.now()-self.user.date_joined) < datetime.timedelta(days=40):
            return True;
        else:
            return False;

在我的模板中有一个不同的 View ,具体取决于此函数的输出。但是基本没有输出。

当简单地“打印”输出时,根本没有任何返回。返回“datetime”和“date_joined”时显示日期。当返回两个“datetime.datetime”的 str(type()) 时返回。但是当返回差异(或差异的类型)时,绝对没有返回任何内容。在我的 python 控制台中执行相同操作时,会返回一个 timedelta - 正是我所期望的。

知道下一步要搜索哪里吗?我无法弄清楚到底发生了什么事才能完全阻止此函数在不使应用程序崩溃的情况下提供任何输出。

最佳答案

您正在尝试减去原始偏移和偏移感知日期时间。

您需要安装 pytz pip install pytz 并使用以下方法更改您的方法:

import datetime, pytz

@property
def isNew(self):
    return pytz.utc.localize(datetime.datetime.now())-self.user.date_joined < datetime.timedelta(days=40)

关于python - 在 Django 中减去日期时间 - 无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30258949/

相关文章:

python - Django Admin 将我的外键显示为中间模型作为文本输入

python - 在 python 中使用元组循环提取数据

python - 有什么方法可以让一个进程拥有写锁而其他进程只能并行读取?

Python多处理模块不调用函数

python - 如何在 Django 中对搜索结果进行分页?

jquery - Ajax:将整数数组发布到 Django

python - 检查目录是否已经创建python

python - 删除循环的新行?

python - 线程执行的函数的return语句会自动杀死线程吗?

python - 如何轻松打印 ascii-art 文本?