Python Django值从DateTimeField获取年份

Python Django值从DateTimeField获取年份,python,django,Python,Django,我有一个页面,用户可以在其中搜索其他用户。使用AJAX调用搜索,结果使用JSON返回,代码如下: return HttpResponse(json.dumps({'users': list(users.values('first_name', 'last_name', 'gender', 'zip_code__city', 'zip_code__state')) })) 我将用户的生日存储在带有生日=models.DateTimeField()的模型中。我试图在生日的那一年返回结果,但我遇到了

我有一个页面,用户可以在其中搜索其他用户。使用AJAX调用搜索,结果使用JSON返回,代码如下:

return HttpResponse(json.dumps({'users': list(users.values('first_name', 'last_name', 'gender', 'zip_code__city', 'zip_code__state')) }))
我将用户的生日存储在带有
生日=models.DateTimeField()
的模型中。我试图在生日的那一年返回结果,但我遇到了麻烦。返回整个日期会很有效,因为我总是可以在一年后解析出来

当我尝试在
values
中的参数中添加“birthday”时,我得到一个错误,即它不可JSON序列化。我还尝试了“生日年”,但返回了一个错误,即没有“年”


如何将DateTime字段放入列表中?

构建一个
models.py
方法以返回年份:

型号.py

from django.db import models

class MyModel(models.Model):
  birthday = models.DateTimeField()

  def get_year(self):
    return self.birthday.year

然后从您的视图调用此函数。py

您不能像这样设置动态默认值,也不应该真的需要将其存储在数据库中

from django.db import models

class MyModel(models.Model):
  birthday = models.DateTimeField()

  def get_year(self):
    return self.birthday.year
只要把它变成一个属性(甚至可能是缓存的属性)