2015-12-02 66 views
0

以下是我正在嘗試做的事情。
當然,這會很慢,並想知道是否有更好的方法來做到這一點。Django。得到相關查詢集的聯合

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'): 

回答

0

你可以使用:

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

這將查詢已關聯的任何Foo模型中的所有Bar對象。