gpt4 book ai didi

python - 从 Django DateTimeField 获取日期

转载 作者:太空狗 更新时间:2023-10-29 17:27:19 24 4
gpt4 key购买 nike

我想就此事请求一些帮助

我正在学习 Django 并尝试一些代码,但我在尝试仅从模型的 DateTimeField 获取日期时遇到了障碍

这是我正在处理的代码:

class APPLICANT_DATA(models.Model):
SCHEDULED_AT = models.DateTimeField(null=True, blank=True)


def somefunction():
app_data = APPLICANT_DATA.objects.all()
for item in app_data:
the_date = str(item.SCHEDULED_AT.strftime("%B-%d-%Y")) + ", " + the _date

我得到('NoneType' object has no attribute 'strftime')即使我的模型包含 3 条记录,它们都有日期和时间

我做错了什么?对新手有什么建议吗?非常感谢。

最佳答案

DateTimeField 成为 Python 中的 datetime.datetime 对象

如果以后需要操作date对象,可以直接从DateTimeField()中提取datetime.date对象,使用 datetime.datetime.date()如下所示:

class ApplicantData(models.Model):
scheduled_at = models.DateTimeField(null=True, blank=True)

date = application_data.scheduled_at.date()

这是可行的,因为 Django 会将 DateTimeField 转换为 Python 类型 datetime.datetime,我们已在其上调用了 date()

按照您的意愿格式化datetime.date

然后,您会得到一个 datetime.date 对象,您可以使用 datetime.date.strftime() 对其进行格式化。 .

如果您不需要date 对象,您也可以在datetime.datetime 对象上使用strftime,没有问题那。除了你的对象中有一个 None 字段。

处理NULL/None字段

如果你想在 scheduled_at 中允许 NULL 值,你可以这样做:

if application_data.scheduled_at is not None:
date = application_data.scheduled_at.date()

关于python - 从 Django DateTimeField 获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35300460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com