从外键获取所有对象

时间:2015-05-17 08:46:21

标签: python django

models.py:

class Country(models.Model):
    name = models.CharField()
    def all_shops(self):
        pass

class Town(models.Model):
    county =  models.ForeignKey(Country)
    name = models.CharField()

class Shop(models.Model):
    town = models.ForeignKey(Town)
    ...

从国家/地区对象我需要查看该国家/地区的所有商店。这是一个很好的示例,因此,从国家/地区模型到商店模型(都有外键)有很多型号。我想告诉你,在购物模型中使用town__county - 不好的做法,因为在实际情况中有很多模型而且filter()会非常大。< / p>

如果我使用

return self.shops_set.all() 
all_shops()中的

- 这不起作用。

例如,我们有id = 1的国家/地区。如何获得该国家/地区的所有商店?

谢谢!

1 个答案:

答案 0 :(得分:2)

你应该准确解释发生了什么,而不是说&#34;这不起作用&#34;。

但是,通话应为self.shop_set.all()

编辑抱歉,我没有意识到你是从一个国家到另一个商店。正确的电话是Shop.objects.filter(town__country=self).

我不知道你的意见是什么意思,这样做是不好的做法。