我有一个页面,用户可以在其中搜索其他用户。使用AJAX调用搜索,并使用JSON返回结果,代码如下:
return HttpResponse(json.dumps({'users': list(users.values('first_name', 'last_name', 'gender', 'zip_code__city', 'zip_code__state')) }))
我使用birthday = models.DateTimeField()
将用户生日存储在模型中。我想用结果回到生日那一年,但我遇到了麻烦。返回整个日期将起作用,我可以随后解析一年。
当我尝试将{birthday'添加到values
中的参数时,我收到一个错误,即它不是JSON可序列化的。我也试过'birthday__year',但是这回复了一个错误,即没有'年'这样的东西。
如何将DateTimeField放入列表?
答案 0 :(得分:6)
构建models.py
方法以返回年份:
<强> models.py 强>
from django.db import models
class MyModel(models.Model):
birthday = models.DateTimeField()
def get_year(self):
return self.birthday.year
然后从 views.py
调用此函数答案 1 :(得分:0)
您无法像这样设置动态默认值,也不需要将其存储在数据库中
只需将其设为属性(甚至可能是cached_property)
@property
def age(self):
return date.today().year - self.DOB.year