我正在尝试使用过滤器对日期和表示年份的整数组合的请求,但在执行此操作时遇到了一些麻烦。
这是我的模型:
class Exemple(models.Model):
date_field = models.DateField()
year_field = models.IntegerField()
这是有效的请求:
exs = Exemple.objects.extra(where=["DATE(date_field, '+' || year_field|| ' years') < DATE('now') OR date_field is NULL"])
我想只使用 django ORM 做同样的请求,我试过这个(没用)
from django.db.models import F
import datetime
exs = Exemple.objects.filter(date_field__lt=datetime.timedelta(days=-365*F('year_field'))+datetime.datetime.today().year)
我认为问题在于 F() 在 timedelta 被调用时还不是一个值
提前感谢您提供任何可能有帮助的解决方案或想法