django中大于子句的引用子查询字段
我有一个可以用原始sql进行的查询,但我正在尝试将其转换为使用Django ORM。查询是:django中大于子句的引用子查询字段,django,django-queryset,Django,Django Queryset,我有一个可以用原始sql进行的查询,但我正在尝试将其转换为使用Django ORM。查询是: SELECT a.journey_pattern_ref_id FROM( SELECT * FROM journeypatterntiminglink WHERE from_stop_id = '0180BAC30249' ) a, journeypatterntiminglink b WHERE a.journey_pattern_ref_id = b.journey_
SELECT a.journey_pattern_ref_id
FROM(
SELECT * FROM journeypatterntiminglink
WHERE from_stop_id = '0180BAC30249'
) a,
journeypatterntiminglink b
WHERE a.journey_pattern_ref_id = b.journey_pattern_ref_id
AND b.to_stop_id = '0180BAC30035'
AND b.to_seq_no > a.from_seq_no;
给我带来麻烦的部分是b.to\u seq\u no>a.from\u seq\u no
。到目前为止我有
jps = (JourneyPattern.objects
.filter(journeypatterntiminglink__from_stop=origin)
.filter(journeypatterntiminglink__to_stop=destination))
那么,您应该使用来引用查询构造中的其他字段,而不是常量
从你的问题中推断出你的模型的定义应该是这样的:
from django.db.models import F
jps = (JourneyPattern.objects
.filter(journeypatterntiminglink__from_stop=origin)
.filter(journeypatterntiminglink__to_stop=destination)
.filter(journeypatterntiminglink__to_seq_no__gt=F('journeypatterntiminglink__from_seq_no'))
我的答案不管用吗?