繁体   English   中英

如何过滤 Django 中两个日期之间的数据?

[英]How to filter data between two dates in Django?

我正在尝试开发一个献血应用程序。 在这里,我需要获取最后一次捐赠日期超过 6 个月前的捐赠者数据,也就是说,如果捐赠者在过去六个月内捐赠了捐赠者的数据,则不应将捐赠者的数据呈现到模板中。 我正在尝试这样做,但无法做到。 因此,如果有人可以帮助我,请提前感谢您。 这是models.py中的一列

lastDonatedDate = models.DateField(blank=True, null=True)

我只需要从当前日期过滤捐助者的详细信息,两个日期之间的差异应该大于 6 个月。

您可以使用__range查找 [Django-doc]

MyModel.objects.filter(
    lastDonateDate__range=(, )
)

或者如果我们想在六个月前进行过滤,我们可以安装dateutil package [readthedocs]

pip3 install python-dateutil

然后过滤:

from django.utils.timezone import now
from dateutil.relativedelta import relativedelta

MyModel.objects.filter(
    lastDonateDate__lt=now()-relativedelta(months=6)
)

注意:通常 Django model 中的字段名称是用snake_case 写的,而不是 PerlCase 所以它应该是: last_donated_date而不是lastDonatedDate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM