Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django中滤波逆_集长度的滤波模型_Django - Fatal编程技术网

Django中滤波逆_集长度的滤波模型

Django中滤波逆_集长度的滤波模型,django,Django,我有模型: class A(models.Model): b = models.ForeignKey(B) class B(models.Model): pass class C(models.Model): b = models.ForeignKey(B) bar = models.IntegerField() # Or any other field class C(models.Model): 我需要用c的长度过滤A,用c的值过滤b的集合。现在我有

我有模型:

class A(models.Model):
    b = models.ForeignKey(B)

class B(models.Model):
    pass

class C(models.Model):
    b = models.ForeignKey(B)
    bar = models.IntegerField()  # Or any other field

class C(models.Model):
我需要用c的长度过滤A,用c的值过滤b的集合。现在我有:

for a in A.objects.all():
    if len(a.b.c_set.filter(bar=1234)) == 0:
        continue
    # Code for needed 'a'
如何仅使用一个数据库请求筛选“A”?我有其他的“A”过滤器,我需要将它们与新的过滤器结合起来。大概是这样的:

A.objects.annotate(newfilter=Count(b__c_set__bar=1234)).filter(**{
    'newfilter__gt': 0,
    # My filters
})

看起来很管用!谢谢。但有一个小改动:a.objects.filter(b_u_c_set_ubar=1234).distinct().filter(**{…})
A.objects.filter(b__c__bar=1234).distinct().filter(**{
    # My filters
})