Dav*_*own 22 python django serialization
我正在序列化内置的django Group模型,并希望在序列化程序中添加一个字段来计算组中的用户数.我目前正在使用以下序列化程序:
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ('id', 'name', 'user_set')
Run Code Online (Sandbox Code Playgroud)
这将返回组ID和名称以及组中的用户数组(用户ID):
{
"id": 3,
"name": "Test1",
"user_set": [
9
]
}
Run Code Online (Sandbox Code Playgroud)
我希望改为输出是这样的:
{
"id": 3,
"name": "Test1",
"user_count": 1
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
Lal*_*ada 46
有点晚但回答简短.试试这个
user_count = serializers.IntegerField(
source='user_set.count',
read_only=True
)
Run Code Online (Sandbox Code Playgroud)
emr*_*re. 30
这应该工作
class GroupSerializer(serializers.ModelSerializer):
user_count = serializers.SerializerMethodField()
class Meta:
model = Group
fields = ('id', 'name','user_count')
def get_user_count(self, obj):
return obj.user_set.count()
Run Code Online (Sandbox Code Playgroud)
这会user_count为您的序列化程序添加一个字段,其值设置为get_user_count,将返回该字段的长度user_set.
您可以在此处找到有关SerializerMethodField的更多信息:http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield
| 归档时间: |
|
| 查看次数: |
11433 次 |
| 最近记录: |