Я пытаюсь попробовать запрос с фильтром на комбинацию даты и целое число, которое представляет год, и я сталкиваюсь с некоторыми неприятностями в этом.запрос django с двумя полями даты
Вот моя модель:
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"])
Я хочу сделать то же запрос, используя только Джанго ОРМ, я попробовал это (что не работает)
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 дозвонились
Спасибо авансом для любого решения или идеи, которые могли бы помочь
Спасибо за ваш ответ, я пытался сосредоточиться только на год: EXS = Exemple.objects.filter (. Date_field__year__lt = 0-F ('year_field') + datetime.datetime.today() год) Но получить сообщение об ошибке: «Присоединиться к полю« date_verif »не разрешено. Вы пропустили« год »для типа поиска?» В любом случае, я должен позаботиться о всей дате, потому что здесь важны месяцы и дни, поэтому я думаю, что сделаю это с дополнительным, но так как мне придется развернуть его в другую систему БД, я буду придется адаптировать его ... еще раз спасибо – BlueMagma
Итак, после краткого исследования я нахожу это: https://code.djangoproject.com/ticket/10911 – BlueMagma