我正在尝试研究如何运行一些逻辑来从我的序列化程序(或其他地方)中获取某些对象。
我有以下几点:
class Parent(models.Model):
name = models.CharField(max_length=255)
class Child(models.Model):
name = models.CharField(max_length=255)
parent = models.ForeignKey(
Parent, related_name='children', on_delete=models.CASCADE)
class ChildSerializer(serializers.ModelSerializer):
class Meta:
model = Child
fields = (
'id',
'name',
)
class ParentSerializer(serializers.ModelSerializer):
children = ChildSerializer()
class Meta:
model = Parent
fields = (
'id',
'name',
'children',
)
class ParentViewSet(viewsets.ModelViewSet):
serializer_class = ParentSerializer
queryset = Parent.objects.all()
class ChildViewSet(viewsets.ModelViewSet):
serializer_class = ChildSerializer
queryset = Child.objects.all()
我想在parent
响应中添加一个字段:first_child
,它是name
的第一个子字段(实际上,这个逻辑会稍微复杂一些,例如,多个字段之和的最大值)。我还将删除children
字段,以支持first_child
字段,因为这些字段的数量太多,无法像这样内联显示。
1条答案
按热度按时间1bqhqjot1#
可以使用
to_representation
方法或者,使用
SerializerMethodField
: