我想就此事请求一些帮助
我正在学习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条记录,它们都有日期和时间
我做错什么了?对新手有什么建议吗?非常感谢。
SCHEDULED_AT
设置为null=True
,因此有时item.SCHEDULED_AT
没有值,所以它是None
。如果对None
执行.strftime
操作,则会出现错误。null=True
表示django模型允许字段具有NULL
值。顺便说一句,对模型名和字段名使用所有大写是非常糟糕的做法,模型名应该是驼峰大小写,字段应该是带下划线的小写。模型名应该是
ApplicantData
,字段名应该是scheduled_at
。虽然在给定的示例中,问题很可能是由于对象真正是
None
,如在其他答案中所述,但是请注意,如果您忘记通过调用(例如在您的DateTimeField中的full_clean()
)来清理数据,则可能在测试代码中遇到这种情况,如:DateTimeField在Python中成为一个
datetime.datetime
对象如果以后需要操作} 直接从
date
对象,可以使用如下^{DateTimeField()
中提取datetime.date
对象:这是因为Django将把
DateTimeField
转换为Python类型datetime.datetime
,我们在该类型上调用了date()
。按照您的意愿格式化
datetime.date
然后,您得到一个} 按您的意愿格式化它。
datetime.date
对象,您可以使用^{如果不需要
date
对象,也可以在strftime
对象上使用datetime.datetime
,这没有问题。只是你的对象中没有字段。处理
NULL
/None
字段如果要在
scheduled_at
中允许空值,可以执行以下操作:相关问题 更多 >
编程相关推荐