Django的。得到相关查询集的联合

时间:2015-12-02 09:56:22

标签: django django-queryset

以下是我要做的事 当然这会很慢,并且想知道是否有更好的方法。

class Foo(models.Model):
    bars = generic.GenericRelation(Bar)

    class Meta:
        abstract = True


class Bar(models.Model):

    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    invitation = generic.GenericForeignKey('content_type', 'object_id')

    timestamp = models.DateTimeField(auto_now_add=True, db_index=True)

    meat = models.ForeignKey(Jessy)


bars = Bar.objects.none()
for foo in Foo.objects.all():
    bars = bars | Q(foo.bars.all())


bars.values('meat').order_by('timestamp'):

1 个答案:

答案 0 :(得分:0)

你可以使用:

Bar.objects.filter(content_type=ContentType.objects.get_for_model(Foo), object_id__isnull=False).values('meat').order_by('timestamp')

这将查询已关联任何Bar模型的所有Foo个对象。