- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Django Rest Framework 为某个表批量创建行。我在 documentation 中看到DRF 支持它。
View .py
class UserProfileFeedViewSet(viewsets.ModelViewSet):
"""Handles creating, reading and updating profile feed items."""
authentication_classes = (TokenAuthentication,)
queryset = models.ProfileFeedItem.objects.all()
serializer_class = serializers.ProfileFeedItemSerializer(queryset, many=True)
permission_classes = (permissions.PostOwnStatus, IsAuthenticated)
def perform_create(self, serializer):
"""Sets the user profile to the logged in user."""
serializer.save(user_profile=self.request.user)
class ProfileFeedItemListSerializer(serializers.ListSerializer):
def create(self,validated_data):
feed_list = [ProfileFeedItem(**item) for item in validated_data]
return ProfileFeedItem.objects.bulk_create(feed_list)
class ProfileFeedItemSerializer(serializers.ModelSerializer):
"""A serializer for profile feed items."""
class Meta:
model = models.ProfileFeedItem
list_serializer_class = ProfileFeedItemListSerializer
fields = ('id', 'user_profile', 'status_text', 'created_on')
extra_kwargs = {'user_profile': {'read_only': True}}
TypeError at /api/feed/ 'ProfileFeedItemListSerializer' object is not callable Request Method: GET Request URL: http://127.0.0.1:8080/api/feed/ Django Version: 1.11 Exception Type: TypeError Exception Value: 'ProfileFeedItemListSerializer' object is not callable Exception Location: /home/ubuntu/.virtualenvs/profiles_api/local/lib/python3.5/site-packages/rest_framework/generics.py in get_serializer, line 111 Python Executable: /home/ubuntu/.virtualenvs/profiles_api/bin/python Python Version: 3.5.2
最佳答案
尝试一下:
def create(self, request, *args, **kwargs):
many = isinstance(request.data, list)
serializer = self.get_serializer(data=request.data, many=many)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, headers=headers)
def perform_create(self, serializer):
if type(serializer.validated_data) == list:
for item in serializer.validated_data:
item.update({'user_profile': self.request.user})
else:
serializer.validated_data.update({'user_profile': self.request.user})
serializer.save()
关于django - 使用 Django Rest Framework 的 ListSerializer 批量创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45917656/
我正在尝试为具有 content_type 对象的投票应用程序实现 Django-Rest 框架。我尝试使用 rest-framework-generic-relations对于 serializer
我刚接触Django和DRF。在学习的时候,我发现了错误。我不确定错误是从哪里产生的。 Traceback: File "/home/marvel/venv/django_1_111/lib/pyth
我在我的项目中使用 django rest,直到现在我使用的对象列表 ListSerializer ,当我需要列表的最小长度和最大长度时,我用谷歌搜索并找到了 ListField . 在此之前,我的代
我在我的项目中使用 django rest,直到现在我使用的对象列表 ListSerializer ,当我需要列表的最小长度和最大长度时,我用谷歌搜索并找到了 ListField . 在此之前,我的代
我目前有这个要序列化的 Django 模型: class Result(models.Model): ... routes = models.ManyToManyField(Route
以上两种方法有什么区别? 我不明白它们是如何工作的,我确实尝试过谷歌搜索、文档、StackOverflow、中等文章,但我不明白它们的工作原理。 ListCreateAPIView是否会按照列表的长度
我正在编写一个序列化器来为 django 模型提供多个部分更新。我正在遵循 DRF api 指南中出现的示例实现,复制如下并链接到此处:https://www.django-rest-framewor
我的 serializers.py 有以下代码: from rest_framework import serializers from django.db import transaction fr
我有一个稍微复杂的 APIView,这使得我不能使用通用的 ListAPIView返回一个查询集。但我似乎无法使用 ModelSerializer 简单地序列化一个简单的 Django 查询集,即使我
我试图在 django GET 请求中调用序列化程序但它显示了一个 类型错误:“ListSerializer”类型的对象不是 JSON 可序列化的 如果我在某处出错,请帮助我。提前致谢。 class
我正在尝试使用 Django Rest Framework 为某个表批量创建行。我在 documentation 中看到DRF 支持它。 View .py class UserProfileFeedV
我在尝试访问 serializer.data 时遇到错误在 Response(serializer.data, status=something) 返回之前: Getting KeyError whe
我正在阅读有关自定义多个更新的内容 here 而且我还没有弄清楚在什么情况下调用自定义 ListSerializer 更新方法。我想一次更新多个对象,我现在不担心多次创建或删除。 来自文档中的示例:
使用 Vaadin 6.x 和 Vaadin 图表,我正在使用 BasicColumn ( http://demo.vaadin.com/charts/#BasicColumn )。我希望用户在屏幕上
我正在学习 Django Rest Framework 的新手,并且在序列化程序验证和 ListSerializer 更新方法方面遇到问题。 我有一个处理放置请求的 APIView 类。我只是想进行自
我是一名优秀的程序员,十分优秀!