为了账号安全,请及时绑定邮箱和手机立即绑定

如何在具有多对多关系的 Django 中反向序列化

如何在具有多对多关系的 Django 中反向序列化

慕工程0101907 2021-12-09 15:26:52
我首先制作了categorycrud,然后productcrud 与category.models.py( category):class Category(models.Model):    name = models.CharField(max_length=191, blank=False, null=False)    description = models.TextField(blank=True, null=True)models.py( product):class Product(models.Model):    product_code = models.CharField(max_length=191, blank=False, null=False)    name = models.CharField(max_length=191, blank=False, null=False)    description = models.TextField(blank=False, null=False)    price = models.DecimalField(max_digits=19, decimal_places=2)    photo = models.ImageField(upload_to='pictures/products/', max_length=255, null=False, blank=False)    category = models.name = models.ManyToManyField(Category)如何实现以下结果:  {        "categories": [            {                "id": 1,                "name": "Indoor Muscle Training",                "description": null,                "products":{                       "name":"product_name",                       "code":"product_code"                }            },            {                "id": 2,                "name": "Outdoor Muscle Training",                "description": null,                "products":{                       "name":"product_name",                       "code":"product_code"                }            }        ]  }
查看完整描述

1 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

serializer-method在这种情况下,使用字段可以是一个选项。我们的目标是product从category序列化程序中获取信息。所以对于这个


class CategorySerializer(serializers.ModelSerializer):

    products = serializers.SerializerMethodField()


    class Meta:

        model = Category

        fields = ('') # add relative fields


   def get_products(self, obj):

       products = obj.product_set.all() # will return product query set associate with this category

       response = ProductSerializer(products, many=True).data

       return response


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号