Django REST框架JSON数组发布

清永

我正在使用Django 1.8和Django rest_framework 3.3.1。我可以保存一个JSON数组,并且可以正常工作。但是我想保存多个JSON数组。

我已经找到了针对该请求的解决方案,ㅠ

如何保存此JSON数组?

测试JSON数组:

{
    "urllist": [
        {
          "title": "20151123100000011",
          "publisher": "01100101",
          "link": "01100101.20151123100000011"
        },
        {
          "title": "20151123100000076",
          "publisher": "01100101",
          "link": "01100101.20151123100000076"
        }
      ]
}

模型:

class NewsUrl(models.Model):
    link = models.CharField(max_length=100, primary_key=True)
    title = models.TextField(default='')
    publisher = models.CharField(max_length=150, blank=True, default='')
    status = models.CharField(max_length=1, default='R')  # R:Ready, W:Working, D:Done
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    def __str__(self):
        return "NewsUrlList = [%s] %s" % (self.link, self.title)

    class Meta:
        ordering = ('created', )

看法:

class NewsUrlList(mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView):
    queryset = NewsUrl.objects.all()
    serializer_class = NewsUrlSerializer
    permission_classes = (IsAuthenticated, )
    authentication_classes = (JSONWebTokenAuthentication, )

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

序列化器:

class NewsUrlSerializer(serializers.Serializer):
     link = serializers.CharField(required=True, max_length=100)
     title = serializers.CharField(required=False, max_length=200)
     publisher = serializers.CharField(required=False, max_length=10)
     status = serializers.CharField(required=False, default='R')

     def create(self, validated_data):
         return NewsUrl.objects.create(**validated_data)

     def update(self, instance, validated_data):
         instance.status = validated_data.get('status', instance.status)
         instance.save()
         return instance
利诺维亚

如果要创建几个新项,则应自己实例化序列化器并添加参数 many=True

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Django Rest框架中发布对象数组?

来自分类Dev

发布请求Django REST框架

来自分类Dev

Django REST批量发布/发布JSON对象数组

来自分类Dev

Django Rest框架无法发布数据

来自分类Dev

Json解析Django Rest框架

来自分类Dev

使用django rest框架的跨站点发布请求

来自分类Dev

Django rest 框架:在多对多项目上发布

来自分类Dev

Django rest框架-PrimaryKeyRelatedField

来自分类Dev

Django Rest框架表格

来自分类Dev

Django Rest框架关系

来自分类Dev

Django Rest框架assertionError

来自分类Dev

Django rest框架ModelSerializer

来自分类Dev

Django rest框架-PrimaryKeyRelatedField

来自分类Dev

Django Rest框架表格

来自分类Dev

Django Rest 框架 - NoReverseMatch

来自分类Dev

Django Rest 框架:MultipleObjectsReturned

来自分类Dev

Django REST框架+ Django REST Swagger + ImageField

来自分类Dev

在 Django REST API 中命名 JSON 数组

来自分类Dev

如何在Django Rest框架中解析JSON

来自分类Dev

JSON响应“此字段不能为null。” Django Rest框架

来自分类Dev

在django rest框架中哪里可以更改json响应的形式?

来自分类Dev

使用Django Rest框架在发布请求时获取自定义标头

来自分类Dev

在django rest框架中以dd-mm-YYYY格式发布日期

来自分类Dev

如何使用相关的序列化器Django Rest框架进行发布请求

来自分类Dev

如何在Django Rest框架中向发布方法添加一些cutom代码

来自分类Dev

如何在Django Rest框架中对嵌套的Serailizer执行发布请求

来自分类Dev

在views.py django rest框架中发布后重定向

来自分类Dev

Django Rest框架和Django-Hvad

来自分类Dev

django-下载并安装django rest框架