访问由多表继承创建的模型的RelatedManager

时间:2017-05-24 21:31:15

标签: django django-models

总结:是否可以通过相关模型实例上的相关管理器访问通过多表继承进行子类化的模型?

详细说明:

假设以下模型定义..

class City(models.Model):
    ...

class Place(models.Model):
    city = models.ForeignKey(City)

class Restaurant(Place):
    ...

我希望能够访问波特兰市的所有餐厅:

portland = City.objects.get(id=1)
portland.restaurant_set.all()

restaurant_set或类似似乎不是RelatedManager上的City,只会place_set曝光。

在访问restaurant_set的模型实例时,有没有办法让restaurantsCity或类似的人作为相关管理者公开?

我还试过为餐厅创建了一个自定义管理器,如下所示:

class RestaurantManager(models.Manager):
    use_for_related_fields = True

class Restaurant(Place):
    objects = RestaurantManager()

然而,它似乎并没有让我更接近我想要的东西。

提前道歉,因为这只是伪代码,而不是我在我的项目/应用程序中使用的实际模型。我可能在这里引入了一个错误,而不是在我的实际代码库中,并且如果是这样,我将很乐意澄清和更新。

另外,如果可以在不使用第三方软件包(如django-polymorphice等)的情况下完成此操作,我更喜欢这样做,但如果唯一合理的方法是使用其中一种包裹,我会接受这个答案。

最后,我在Django 1.8上暂时无法升级。

0 个答案:

没有答案