课程test1:
iID = models.AutoField(primary_key=True)
iEID = models.BigIntegerField(_("EID"),default=0)
istatus = models.BooleanField(_("Status"),default=0)
class test2:
iid = models.AutoField(primary_key=True)
iEID = models.BigIntegerField(_("EID"),default=0)
progress = models.IntegerField(_("pgs"),blank=True,null=True)
我要查询test2模型中的进度> 7,而test1模型中的istatus = 1以及两个表的公共字段都是 iEID
答案 0 :(得分:1)
您可以这样做。
test1_list = test1.objects.filter(istatus=1).values_list('id','iEID')
test2_queryset = test2.objects.filter(progress__gt=7, iEID__in=[y for x, y in test1_list] )
test1_queryset = test1.objects.filter( iEID__in=test2_queryset.values_list('iEID') , id__in = [x for x, y in test1_list])
现在test1_queryset
和test2_queryset
将具有其progess > 7
,istatus = 1
和公共iEID