因此,每当我尝试查看某人的个人资料而未输入出生日期时,都会收到此错误'NoneType' object has no attribute 'year'
。我关注了这篇文章,将生日/年龄添加到了用户个人资料中,因此没有理由包括我的代码,因为我是从这里https://stackoverflow.com/a/39761072/12229283获得的。
我尝试向模型中添加default
,但这似乎不起作用,我该如何做呢?因此,如果用户不输入生日,就跳过它并忽略它吧?谢谢
答案 0 :(得分:1)
您需要在age方法中向返回语句添加一个if / else。
如果date_of_birth没有值(即设置为None),则在调用dob.year时会收到该错误,其中dob = date_of_birth = None。
class Profile(models.Model):
date_of_birth = models.DateField()
def age(self):
import datetime
if self.date_of_birth:
dob = self.date_of_birth
tod = datetime.date.today()
my_age = (tod.year - dob.year) - int((tod.month, tod.day) < (dob.month, dob.day))
return my_age
else:
return ''
答案 1 :(得分:0)
Django 升级到 3.2.4 后,我在 admin>LogEntry 中遇到了这个问题。问题在于使用 date_hierarchy
。