首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Django - 'NoneType‘对象没有'year’属性

Django - 'NoneType‘对象没有'year’属性
EN

Stack Overflow用户
提问于 2019-11-29 06:23:58
回答 2查看 340关注 0票数 0

所以每次当我试图查看没有输入生日的人的个人资料时,我都会得到这个错误'NoneType' object has no attribute 'year'。我遵循这篇文章将生日/年龄添加到用户配置文件中,所以没有理由包括我的代码,因为我是从这里https://stackoverflow.com/a/39761072/12229283获得的。

我尝试在模型中添加一个default,但似乎不起作用,我该怎么做呢?如果用户没有输入生日,就跳过它并忽略它?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-29 07:20:41

您需要在age方法的return语句中添加if / else。

如果没有date_of_birth的值(即设置为None),则在调用dob.year时会收到该错误,其中道布= date_of_birth = None。

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2021-07-01 18:39:07

在Django升级到3.2.4之后,我在admin>LogEntry中遇到了这个问题。问题出在使用date_hierarchy时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59096778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档