如何为Django REST Framework的API响应添加自定义字段combine
解决方案
要给每个用户对象添加由username和id拼接而成的combine字段,只需修改你的serializers.py文件,利用Django REST Framework的SerializerMethodField实现自定义字段即可:
- 从
rest_framework.serializers导入SerializerMethodField - 在
UserSerializer类中声明combine字段为SerializerMethodField()类型 - 定义
get_combine方法,接收用户对象参数,返回拼接后的字符串 - 在
Meta类的fields列表中加入"combine"
修改后的serializers.py代码如下:
from django.contrib.auth import get_user_model from rest_framework import serializers class UserSerializer(serializers.ModelSerializer): # 新增自定义字段 combine = serializers.SerializerMethodField() class Meta: model = get_user_model() fields = ( "id", "username", "combine", # 将新增字段加入返回字段列表 ) # 实现字段的取值逻辑 def get_combine(self, obj): return f"{obj.username} {obj.id}"
修改完成后重启服务,调用API就能得到目标响应格式,每个用户对象里都会包含combine字段,值为username加空格加id的拼接结果。
内容的提问来源于stack exchange,提问作者user3848207
相关产品推荐
相关产品推荐

