어떻게 장고 ORM에서 다음 SQL 쿼리를 수행 할 수 있습니까? MyModel.objects.filter(date_added__gt=date_created)
:장고 쿼리 세트의 두 필드 비교
SELECT * FROM my_table WHERE date_added > date_created;
어떻게 장고 ORM에서 다음 SQL 쿼리를 수행 할 수 있습니까? MyModel.objects.filter(date_added__gt=date_created)
:장고 쿼리 세트의 두 필드 비교
SELECT * FROM my_table WHERE date_added > date_created;
나는 (@tttthomasssss가 가정으로) 당신이 변수로 date_created
사용할 수없는 추측하고있어 그래서는 다음과 같이 될 것입니다 : F 식에
from django.db import models
YourTable.objects.filter(date_added__gt=models.F('date_created')
문서 : https://docs.djangoproject.com/en/dev/ref/models/queries/#django.db.models.F
당신은 >
에 대한 __gt
를 사용할 수 있습니다.
쿼리 세트 here에 대한 설명서를 참조하십시오.
편집 : 경우 date_created
이 Wolph의 솔루션은 하나 다음 @, 당신에게 사용할 수 없습니다.
date_created를 사용할 수 없기 때문에이 방법이 효과가 없을 것 같습니다. 이 행은 NameError를 발생시킵니다. – Norman8054
당신이나 내 대답이 정확하다면 David이 실제로 의미하는 것을 보자 :) – Wolph
다음과 같이 use F() expressions in queries을 쓸 수 있습니다 :
MyModel.objects.filter(date_added__gt=F('date_created'))
사실, OP가 그것을 지정하지 않았기 때문에 둘 다 주어진 것으로 가정하고 그렇지 않다면 당신을 선택할 것입니다 :) – tttthomasssss
우리의 필드가 'order__date_created'와 같은 관계에서? –