日付と年を表す整数の組み合わせでフィルターを使用してリクエストを試みましたが、問題が発生しました。
ここに私のモデルがあります:
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)
問題は、 timedelta が呼び出された時点で F() がまだ値ではないことだと思います
解決策、または役立つ可能性のあるアイデアを事前に感謝します