Возврат вложенных/связанных моделей с отношениями manyToMany через модель

У меня есть отношение ManyToMany между Recipe и Product. Если я запрашиваю Recipes, я могу запросить и связанные продукты, но когда я запрашиваю Product, нет никаких связанных данных модели.

Я думаю, что это происходит потому, что связь определена в модели Recipe. Как я могу запросить Рецепты, связанные с Продуктом (с информацией о модели through!)? По сути, я хочу запросить продукт и увидеть все рецепты, которым нужен этот продукт.

models.py

class Recipe(models.Model):
    ...
    products_input = models.ManyToManyField(Product, through='RecipeInput', related_name='products_input')
    ...


class Product(models.Model):
    ...

class RecipeInput(models.Model):
    recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    amount = models.IntegerField()
    ...

serializers.py

class RecipeInputSerializer(serializers.HyperlinkedModelSerializer):
    product_key = serializers.ReadOnlyField(source='product.key')
    product_name = serializers.ReadOnlyField(source='product.name')

    class Meta:
        model = RecipeInput
        fields = ("product_name", 'amount', 'product_key', )

class RecipeSerializer(serializers.ModelSerializer):
    products_in = RecipeInputSerializer(source='recipeinput_set', many=True)

    class Meta:
        model = Recipe
        fields = "__all__"
        depth = 3

class ProductSerializer(serializers.ModelSerializer):
    
    class Meta:
        model = Product
        fields = "__all__"
        depth = 3
Вернуться на верх