2016-10-26 3 views
3

가 나는 제품이 다음 X 일에서 제공하는 얻을 필요가 두 가지 모델 Django - 쿼리는 어떻게 자체 쿼리합니까?

Product 
    id: 
    delivery_date: DateTimeField 
    contract: FK 

Contract 
    id: 
    safety_days: IntegerField 

있습니다. 이 X는 계약에서 safety_days로 정의됩니다.

products = Product.objects.filter(
    Q(delivery_date__lte=(datetime.datetime.now() + timedelta(days=contract__safety_days))) 
) 

그러나, 나는 할 수 없습니다입니다 :

days = contract__safety_days 

나는 동적으로이 작업을 수행 할 쿼리 내부의 개체 자체를 참조 할 수있는 방법을 모르겠어요.

안부, 루벤 바로스

답변

4

는이 쿼리에 대한 F expressions를 사용해야합니다. 쿼리는 다음과 같이 표시됩니다.

products = Product.objects.filter(
    Q(delivery_date__lte=(datetime.datetime.now() + timedelta(days=F('contract__safety_days')))) 
) 
+0

예! 그게 내가 찾고 있던거야 : D – Ruben

관련 문제