Python 带有两个日期字段的django请求

Python 带有两个日期字段的django请求,python,django,date,filter,request,Python,Django,Date,Filter,Request,我试图尝试使用日期和表示年份的整数组合的筛选器来执行请求,但在执行时遇到了一些问题 这是我的模型: class Exemple(models.Model): date_field = models.DateField() year_field = models.IntegerField() 以下是有效的请求: exs = Exemple.objects.extra(where=["DATE(date_field, '+' || year_field|| ' years') &l

我试图尝试使用日期和表示年份的整数组合的筛选器来执行请求,但在执行时遇到了一些问题

这是我的模型:

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"])
我认为问题在于F()在调用timedelta时还不是一个值


感谢advance提供的任何解决方案或想法,可能会有所帮助,这正是问题所在。你不能用ORM做那样复杂的计算。但是,您可能可以利用
\u year
查找来简化数学:

Exemple.objects.filter(date_field__year__lt=F('year_field'))

不过,如果有比这更复杂的问题,您必须使用
extra

谢谢您的回答,我尝试只关注年份:exs=example.objects.filter(date\u field\uuuuuuuu year\uuu lt=0-F('year\u field')+datetime.datetime.today().year),但出现了一个错误:“不允许在“日期”字段加入。您是否将查找类型的“年”拼错了?“无论如何,我必须处理好整个日期,因为月份和天数在这里很重要,所以我想我会用额外的时间来完成,但由于我必须将其部署到另一个DB系统,我将不得不对其进行调整……感谢againSo,经过简短的研究,我发现:
Exemple.objects.filter(date_field__year__lt=F('year_field'))