Django查找表查询

时间:2011-08-23 12:29:41

标签: django django-models

我是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()返回的每个值?好像我错过了一些简单的东西:/

1 个答案:

答案 0 :(得分:0)

将以前的评论作为未来用户的答案发布。

您正在寻找的是:

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

注意我只在您过滤了__in子句..