python - 如何从 django 的 datefield 获取年份?
问题描述
我想从生日算起一年。所以我使用 self.birthday.year 但它会出错。我如何解决它?
此致。
class User(AbstractUser):
# First Name and Last Name do not cover name patterns
# around the globe.
name = models.CharField(_("Name of User"), blank=True, max_length=255) #이름
gender = models.CharField(max_length=1, choices=CHOICES_GENDER) # 성
birthday = models.DateField(null=True) #생일
def calculate_age(self):
import datetime
return int((datetime.date.year - self.birthday.year) +1)
age = property(calculate_age) #나이
解决方案
试试这个解决方案,
from datetime import date
class User(AbstractUser):
name = models.CharField(_("Name of User"), blank=True, max_length=255)
gender = models.CharField(max_length=1, choices=CHOICES_GENDER)
birthday = models.DateField(null=True)
@property
def calculate_age(self):
if self.birthday:
today = date.today()
return today.year - self.birthday.year - ((today.month, today.day) < (self.birthday.month, self.birthday.day))
return 0 # when "self.birthday" is "NULL"
推荐阅读
- android - 如何通过 Robolectric 测试 HttpUrlConnection 的 http 请求?
- python - Pandas DateFrame.concat() 搞砸了索引排序
- python - 打开多个浏览器时 Selenium 无效会话异常
- javascript - 图片与文字重叠
- pine-script - 标记水平 EMA 线(变量)
- c++ - C++ 发送参考?
- android - 将屏幕截图从持久数据路径移动到图库 - Android
- shell - grep 从文件列表中查找特定模式并排除其他模式
- r - 如何标记日期系列中的第一个和最后一个日期
- json - ionic 3 firebase 兼容性问题