django加入选择相关

时间:2013-02-01 17:40:35

标签: django django-models

我有一个看起来像这样的类别模型。

class categories(models.Model):
    name=models.CharField(max_length=50,db_index=True)

class tag_relation(models.Model):
    category=models.ForeignKey(categories,db_index=True)
    relation=models.ForeignKey(main_tb,db_index=True,related_name='categoryrelation')

class main_tb(models.Model):
    name=charfield
    img_file=charfield etc..
    location=charfield

现在我需要做的是选择一个特定的类别,然后使用location进一步过滤它。

我在做什么就是这个。

query=tag_relation.objects.filter(category='1orsomeother').selectrelated('categoryrelation').filter(location='india')

我知道这不是正确的方法,但我应该如何进行连接和搜索以获得最佳性能。

1 个答案:

答案 0 :(得分:1)

你需要这个:

query = tag_relation.objects.filter(category__id=cat_id, relation__location='india')