django - 通过模型返回具有多对多关系的嵌套/相关模型
问题描述
Recipe
我在和之间有一个多对多关系Product
。如果我请求食谱,我也可以查询相关的产品,但是当我请求产品时,没有相关的模型数据。
我认为这是因为关系是在配方模型上定义的。如何查询与产品相关的食谱(带有through
型号信息!)?基本上我想要的是查询一个产品并查看所有需要这个产品的食谱。
模型.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()
...
序列化程序.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
解决方案
推荐阅读
- ionic-framework - 如何将我的 sqlite3 数据库中的数据导出到一些 json 或 csv 文件
- c# - 网格视图页脚未显示
- java - 生成文本字段组和输出字段
- apache-drill - Apache Drill Embedded 已安装,但无法在 Windows 上运行查询
- java - 如何确定类的类型并将其从Json方法括号传递给gson
- kubernetes - 如何通过 Rest API 获取正在运行的 pod 状态
- r - 将损失函数应用于连续函数
- javascript - 首次使用后仅关闭特定的 jQuery 侦听器
- jmeter - 在 Jmeter 中每分钟运行的事务数
- javascript - 为类选择器“dog”添加限制