我定义了三个模型,如下所示
class City(models.Model):
city_name = models.CharField(...)
class Restaurant(models.Model):
restaurant_name = models.CharField(...)
city = models.ManyToManyFields(City)
class MenuItemCount(models.Model):
restaurant = models.ForeignKey(Restaurant)
city = models.ForeignKey(City)
menu_count = models.IntegerField()
需要注意的是,MenuCount中可能不存在所有餐馆和城市。所以需要左连接。
我正在尝试编写django查询以检索餐馆名称,城市名称和菜单计数的列表。示例结果将是
restaurant1, city1, 20
restaurant1, city2, None
restaurant2, city2, 30
restaurant3, city1, None
如何为此编写查询?
答案 0 :(得分:0)
如果要获取1个查询中的所有数据,可以使用prefetch_related
。您可以看到文档here。这是一个例子。
City.objects.prefetch_related('restaurant_set', 'menuitemcount_set').all()