1

我有 2 个模型:

class Restaurant(models.Model):
    serves_hot_dogs = models.BooleanField(default=False)
    serves_pizza = models.BooleanField(default=False)

    def __str__(self):              # __unicode__ on Python 2
        return "%s the restaurant" % self.place.name

class Waiter(models.Model):
    restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)

    def __str__(self):              # __unicode__ on Python 2
        return "%s the waiter at %s" % (self.name, self.restaurant)

如果我想通过一个查询获得所有服务员和餐馆,我会写:

w = Waiter.objects.select_related().all()

或者

w = Waiter.objects.select_related().get(pk=1)

但是,如何才能找到一家拥有所有服务员的餐厅呢?我试过了

r = Restaurant.objects.select_related().get(pk=1) 

但它没有用。

我不想通过 2 db 询问来做到这一点,例如:

r = Restaurant.objects.get(pk=1)
w = r.waiter_set.all()

可以通过单个查询获取所有信息吗?

谢谢

4

0 回答 0