I would make Restaurant.dishes a @property that returns all dishes the
restaurant's chefs can make:

return Dish.objects.filter(chef__restaurant=self)
On May 23, 2016 14:46, "Jani Tiainen" <[email protected]> wrote:

> Something like....
>
> Chef:
>   # Nothing special here, reverse relations will be done automatically
>
> Dish:
>    chef = ForeignKey(Chef)
>
> Restaurant:
>    chefs = ManyToMany(Chef)
>    dishes = ManyToMany(Dish)
>
>
> Of course, you need to build something to make sure that restaurant
> doesn't serve dishes that it's chefs can't make.
>
>
> On 23.05.2016 15:19, Mlati Mudan wrote:
>
> I read the django documentation for a simple many-to-many relationship and
> I get it, but I'm stuck with this kind of complexity.
>
> Each restaurant employs many chefs and serves many dishes.
> Each chef can work for many restaurants and prepare many dishes.
> Each dish can only be prepared by a single chef but it can be on the menu
> of many restaurants.
>
> How do I connect these models: dish, chef, restaurant?
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/01e504a5-bbc6-4cee-96e2-158a2803d5b7%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/01e504a5-bbc6-4cee-96e2-158a2803d5b7%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/5742FBA4.5010901%40gmail.com
> <https://groups.google.com/d/msgid/django-users/5742FBA4.5010901%40gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CACczBULCJXyxtuzu%3D9Kns27qxkdwLYuFXGW1cDypktDafz8VcA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to