title: Django left join query on multiple fields
body: <p>I have defined three models that are as below</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>One note is that all restaurants and cities might not exist in MenuCount. So a left join is needed.</p>
  
  <p>I am trying to write the django query to retrieve a list of restaurant name, city name and menu counts. Example result would be</p>
  
  <pre><code>restaurant1, city1, 20
  restaurant1, city2, None
  restaurant2, city2, 30
  restaurant3, city1, None
  </code></pre>
  
  <p>How can I write a query for this?</p>