2012-06-07 3 views
0

날짜와 일년을 나타내는 정수를 조합하여 필터로 요청을 시도하고 있는데 문제가 발생했습니다. 여기 두 날짜 필드가있는 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"]) 

난 단지 장고 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()가 아직 mo 정확히 문제입니다

답변

0

을 도울 수있는 솔루션이나 아이디어를 사전에 의해

감사 전화를받을 timedelta MENT. ORM만으로 복잡한 계산을 할 수는 없습니다. 그러나 수학을 단순화하기 위해 __year 검색을 이용할 수 있습니다보다

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

아무것도 더 복잡하지만, 당신은 extra을 사용해야합니다. 답변에 대한

+0

감사합니다, 나는 단지 년에 집중하려고 : EXS = Exemple.objects.filter (. date_field__year__lt = 0-F ('year_field') + datetime.datetime.today() 년) 그러나 오류 : " 'date_verif'필드에 대한 가입이 허용되지 않습니다. ''year ''에 대한 조회 유형을 잘못 입력 했습니까?" 어쨌든 여기서 전체 날짜를 처리해야합니다. 월과 일이 중요하기 때문에 추가로 처리 할 것이므로 다른 DB 시스템에 배포해야하므로 그것을 적응시켜야합니다 ... thanks again – BlueMagma

+0

간단한 연구를 통해, 다음과 같은 결과를 얻었습니다 : https://code.djangoproject.com/ticket/10911 – BlueMagma

관련 문제