gpt4 book ai didi

python - 尝试使用 django.client 批量上传到 django-rest-framework (ModelViewSets)

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:23 24 4
gpt4 key购买 nike

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

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,我是否必须将列表包装在字典中才能发布它?当在批量上传中使用 tastypie 列表时,其中包含在名为“object”的字典中,但这不适用于 DjangoRestFramework。

使用 ModelViewSets 时,是否可以通过 DjangoRestFramework 进行批量上传/更新?

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

class ArticleViewSet(viewsets.ModelViewSet):
model = Article

我刚刚了解到,ModelViewSets 默认情况下不提供批量上传:(。

最佳答案

是的,在 django Rest 框架中可以进行批量上传。

您可以使用 Django REST Framework Bulk。

“pip 安装 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

关于python - 尝试使用 django.client 批量上传到 django-rest-framework (ModelViewSets),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com