我有 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()
可以通过单个查询获取所有信息吗?
谢谢