作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个实现 BaseSerializer
的序列化程序我正在使用 to_representation
的类(class)函数进行函数调用,如下所示:
class ItemSerializer(serializers.BaseSerializer):
def to_representation(self, instance):
ret = super().to_representation(instance)
ret['log'] = SERVICE.log(instance.id)
return ret
class Meta:
list_serializer_class = ItemListSerializer
model = models.Item
fields = '__all__'
ItemListSerializer
看起来像这样:
class ItemListSerializer(serializers.ListSerializer):
def create(self, validated_data):
items = [models.Item(**item) for item in validated_data]
return models.Item.objects.bulk_create(items)
to_representation
ItemSerializer
中的方法当我想获取整个项目列表时。我基本上想避免对每个项目进行函数调用,而是在出于性能原因请求项目列表时对所有项目进行批量调用。
ItemListSerializer
:
https://www.django-rest-framework.org/api-guide/serializers/#customizing-listserializer-behavior但它只讨论覆盖创建和更新方法。
最佳答案
您可以访问 ListSerializer.to_representation
中的所有项目
它应该是一个做你想做的事情的好地方。
该方法如下所示:
def to_representation(self, data):
"""
List of object instances -> List of dicts of primitive datatypes.
"""
# Dealing with nested relationships, data can be a Manager,
# so, first get a queryset from the Manager if needed
iterable = data.all() if isinstance(data, models.Manager) else data
return [
self.child.to_representation(item) for item in iterable
]
关于django - 覆盖 List 序列化器类中的 to_representation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52819113/
我刚开始使用 Dagger 2,想知道与我目前用来实现依赖注入(inject)的技术相比,它有什么优势。 目前,为了实现 DI,我创建了一个具有两种风格的项目:mock 和 prod。在这些风格中,我
我是一名优秀的程序员,十分优秀!