I have a few model classes with basic one-to-many relationships. For example, a book has many recipes, and each recipe has many ingredients:
class Book(models.Model): name = models.CharField(max_length=64) class Recipe(models.Model): book = models.ForeignKey(Book) name = models.CharField(max_length=64) class Ingredient(models.Model): text = models.CharField(max_length=128) recipe = models.ForeignKey(Recipe)
I’d like a flat list of all ingredients in all recipes from a particular book. What’s the best way to express this in Python?
If I was using LINQ, I might write something like this:
var allIngredients = from recipe in book.Recipes from ingredient in recipe.Ingredients select ingredient;
Actually, it looks like there’s a better approach using filter: