我正在对内置的django组模型进行序列化,并希望向序列化器添加一个字段,以对组中的用户数量进行计数。我当前正在使用以下序列化器:
I am serializing the built-in django Group model and would like to add a field to the serializer that counts the number of users in the group. I am currently using the following serializer:
class GroupSerializer(serializers.ModelSerializer): class Meta: model = Group fields = ('id', 'name', 'user_set')这将返回组ID和名称以及该组中的一组用户(用户ID):
This returns the group ID and name and an array of users (user IDs) in the group:
{ "id": 3, "name": "Test1", "user_set": [ 9 ] }我想要的是输出内容:
{ "id": 3, "name": "Test1", "user_count": 1 }任何帮助将不胜感激。谢谢。
Any help would be appreciated. Thanks.
推荐答案这应该有效
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()这会将 user_count 字段添加到序列化器,其值由 get_user_count ,它将返回 user_set 的长度。
This adds a user_count field to your serializer whose value is set by get_user_count, which will return the length of the user_set.
您可以在以下位置找到有关SerializerMethodField的更多信息: www.django-rest-framework / api-guide / fields /#serializermethodfield
You can find more information on SerializerMethodField here: www.django-rest-framework/api-guide/fields/#serializermethodfield
更多推荐
将计数字段添加到Django Rest Framework序列化器
发布评论