2011-08-23 61 views
0

我很Django的福利局和有一个很难搞清楚这个查询了..Django的查找表查询

型号:

class JakAlgAlgorithms(models.Model): 
    alg_id = models.AutoField(primary_key=True) 
    alg_name = models.CharField(max_length=100, blank=True) 
    alg_description = models.CharField(max_length=1000, blank=True) 
    def __unicode__(self): 
     return self.alg_name 
    class Meta: 
     db_table = u'jak_alg_algorithms' 

class JakAlgXref(models.Model): 
    xref_alg = models.ForeignKey(JakAlgAlgorithms, related_name='jakalgxref_alg' ,null=True, blank=True) 
    xref_parent = models.ForeignKey(JakAlgAlgorithms, related_name='jakalgxref_parent', null=True, blank=True) 
    class Meta: 
     db_table = u'jak_alg_xref' 

我试图做的是恢复所有的家长或算法的孩子。这是我设法去..

parents = JakAlgAlgorithms.objects.filter(jakalgxref_parent= algorithm.jakalgxref_alg.all()) 

但是,我已经意识到,这将不适用于多个父母。我怎么能过滤jakalgxref_parent等于由algorithim.jakalgxref_alg.all()返回的每个值?似乎我错过了一些简单的东西:/

+0

不知道我理解你想要什么。只是在黑暗中拍摄,是'父母= JakAlgAlgorithms.objects.filter(jakalgxref_parent__in = algorithm.jakalgxref_alg.all())'你试图达到什么目的?注意我只添加了__in子句给你过滤... –

+0

是的!非常感谢您 –

+0

您应该将答案作为实际答案并标记为已回答,以便在搜索过程中受益于其他用户 – shawnwall

回答

0

发表我以前的评论作为未来用户的答案。

什么你要找的是这样的:

parents = JakAlgAlgorithms.objects.filter(jakalgxref_parent__in= algorithm.jakalgxref_alg.all()) 

通知我给你过滤我只添加了__in条款..