Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
在django rest框架中如何在post api请求中提供json数据_Django_Api_Rest_Frameworks - Fatal编程技术网

在django rest框架中如何在post api请求中提供json数据

在django rest框架中如何在post api请求中提供json数据,django,api,rest,frameworks,Django,Api,Rest,Frameworks,我是Django rest框架的新手,请指导我在哪里犯了错误, 我想制作一个包含两个参数的API cat名称(即字符字段) cat字段(即JSON字段) 我想把动态JSON字段放在客户端上,比如他们将添加4个字段数据和JSON中的密钥对或任意数量的字段,我希望你们都能理解我的查询 请帮帮我,我会非常感谢你的帮助 这是我的观点 @api_视图(['POST'])) @parser_类([JSONParser]) def add_cateogry_和_字段(请求,格式=无): 如果request.m

我是Django rest框架的新手,请指导我在哪里犯了错误, 我想制作一个包含两个参数的API

  • cat名称(即字符字段)
  • cat字段(即JSON字段)
  • 我想把动态JSON字段放在客户端上,比如他们将添加4个字段数据和JSON中的密钥对或任意数量的字段,我希望你们都能理解我的查询

    请帮帮我,我会非常感谢你的帮助

    这是我的观点

    @api_视图(['POST']))
    @parser_类([JSONParser])
    def add_cateogry_和_字段(请求,格式=无):
    如果request.method==“POST”:
    插入_Serializers=AddCategoryWithFieldsSerializer(数据=request.data)
    如果插入\u序列化程序,\是否有效()
    插入_序列化程序。保存()
    返回响应(insert_Serializers.data,status=status.HTTP_201_CREATED)
    其他:
    返回响应(插入\u Serializers.data,status=status.HTTP\u 400\u BAD\u请求)
    
    这是序列化程序类 序列化程序.py

    类AddCategoryWithFieldsSerializer(ModelSerializer):
    category\u name=serializers.CharField(最大长度=34)
    category_fields=serializers.JSONField()
    类元:
    模型=类别模型
    字段=('category\u name'、'category\u fields')
    
    Model.py类是

        class CategoryModel(models.Model):
            category_id = models.AutoField(primary_key=True)
            category_name = models.CharField(max_length=255)
            category_fields = models.JSONField()
            parent_category = models.ForeignKey('self', on_delete=models.CASCADE, null=True)
        
            class Meta:
                db_table = 'category'
    

    您传递的JSON数据后面有一个逗号(

    {
        "category_name": "site",
        "category_fields": {
            "abc": "abc",
            "def": "def"
        }, # having comma here when there's nothing next to it will have error when parsed
    }