有没有一种方法可以基于同一序列化程序中另一个字段的值初始化Django REST序列化程序的属性值?

2024-09-25 00:35:07 发布

您现在位置:Python中文网/ 问答频道 /正文

class MySerializer(serializers.Serializer):
      owner=serializer.ReadOnlyField(source='auth.username')
      ownerUrl = ..... 

假设我有一个这样的序列化程序,使用create和update方法(这里没有显示),现在我想要的是ownerUrl在生成序列化程序时获取一个值,根据同一个序列化程序的owner值,我该怎么做? 例如,我们这样做一个序列化程序

serializer=MySerializer(MyModel.objects.get(pk=10)) 

然后serializer.data.get('ownerull')有一个基于owner的值,可能类似于<value of owner>+"/"


Tags: 程序authsourceget序列化createusernameclass
1条回答
网友
1楼 · 发布于 2024-09-25 00:35:07

在序列化程序中,可以执行以下操作:

 class MySerializer(serializers.Serializer):
     owner=serializer.ReadOnlyField(source='auth.username')

     url = serializers.SerializerMethodField(read_only=True)

     def get_url(self, obj):
         ** obj is MyModel instance, so you can access model properties and return waht you need **
         return obj.username

相关问题 更多 >