【问题标题】:Trying to bulk upload to django-rest-framework (ModelViewSets) using django.client尝试使用 django.client 批量上传到 django-rest-framework (ModelViewSets)
【发布时间】:2013-12-07 11:32:11
【问题描述】:

我正在尝试使用此测试一次上传多个元素:

def test_rest_api_post_list_of_article(self):
    password = "test"
    admin = User.objects.create_superuser("test", "asdf@asdf.com", password)
    admin.save()
    client = Client()
    client.login(username=admin.username, password=password)
    response = client.post('/api/v1/artcle/', data=[{'artnr': '0001'}, {'artnr': '0002'}])
    self.assertEqual(response.status_code, 201)
    artikel = Article.objects.all()
    self.assertEqual(len(article), 2)

但它因 AttributeError 而失败,我是否必须将列表包装在 dict 中才能发布?在批量上传中使用包含在名为“objects”的dict中的tastepie列表时,但这不适用于DjangoRestFramework。

在使用 ModelViewSets 时,是否可以使用 DjangoRestFramework 批量上传/更新?

为了完整起见,这里是我的 ViewSet:

class ArticleViewSet(viewsets.ModelViewSet):
    model = Article

我刚刚了解到,ModelViewSets 默认不提供批量上传:(.

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    是的,在 django rest 框架中可以批量上传。

    您可以使用 Django REST Framework Bulk。

    “pip install djangorestframework-bulk”

    通过 from rest_framework_bulk import BulkModelViewSet 导入 BulkModelViewSet

    并使用 BulkModelViewSet 代替 ModelViewSet

    从 rest_framework_bulk 导入(

    BulkListSerializer,
    BulkSerializerMixin,
    ListBulkCreateUpdateDestroyAPIView,
    

    )

    类 FooSerializer(BulkSerializerMixin, ModelSerializer):

    class Meta(object):
        model = FooModel
        # only necessary in DRF3
        list_serializer_class = BulkListSerializer
    

    更多详情请访问。

    https://github.com/miki725/django-rest-framework-bulk

    【讨论】:

      猜你喜欢
      • 2014-02-21
      • 2018-02-05
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2017-02-28
      • 2015-10-06
      相关资源
      最近更新 更多