Возврат вложенных/связанных моделей с отношениями 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