我首先制作了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
添加回答
举报
0/150
提交
取消
