Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从Django创建RESTAPI_Python 3.x_Django_Restapi - Fatal编程技术网

Python 3.x 从Django创建RESTAPI

Python 3.x 从Django创建RESTAPI,python-3.x,django,restapi,Python 3.x,Django,Restapi,我创建了模型来保存产品、类别和ProductCategory class Product(models.Model): ... title = models.CharField(max_length=100, default = '') ... class Category(models.Model): name = models.CharField(max_length = 20, defau

我创建了模型来保存产品、类别和ProductCategory

class Product(models.Model):
    ...
    title = models.CharField(max_length=100, default = '')                                  
    ...

class Category(models.Model):
    name = models.CharField(max_length = 20, default = '')

class ProductCategory(models.Model):
    product = models.ForeignKey(Product, default=None, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, default=None, on_delete=models.CASCADE)
模型的序列化程序:

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = '__all__'

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

class ProductCategorySerializer(serializers.ModelSerializer):
    
    class Meta:
        model = ProductCategory
        fields = '__all__'
视图集

class ProductViewset(viewsets.ModelViewSet):
    queryset = models.Product.objects.all()
    serializer_class = serializers.ProductSerializer

class CategoryViewset(viewsets.ModelViewSet):
    queryset = models.Category.objects.all()
    serializer_class = serializers.CategorySerializer

class ProductCategoryViewset(viewsets.ModelViewSet):
    queryset = models.ProductCategory.objects.all()
    serializer_class = serializers.ProductCategorySerializer
到目前为止,我可以向每个表添加数据,并从Django REST框架查看它们

Json响应:

产品:

[
...
   {
      "id": 1,
      "title": "Jacket One",
   }
...
]
类别

[
    ...
       {
          "id": 1,
          "name": "Jacket",
       }
    ...
    ]
产品类别

[
    ...
       {
          "id": 1,
          "product": 1,
        "category": 1
       }
    ...
    ]
我想要创建的实际json是:

[
    "jacket":[
        {
          "id": 1,
          "title": "Jacket One",
       }
       ......other jacket products......
     ],

    ........ other categories with their products ............

]

我如何实现这样的json。我尝试加入模型并在queryset中进行过滤,但没有找到答案。如能在正确的方向上给予帮助,我们将不胜感激。谢谢。

在序列化程序中使用
rest\u框架
。我使用了序列化程序。我要问的是如何使用透视表连接两个模型,然后在其上创建json响应。感谢您的回复。请在序列化程序中使用
rest\u framework
。我使用了序列化程序。我要问的是如何使用透视表连接两个模型,然后在其上创建json响应。谢谢你的回复。