hY8*_*Xib 1 django django-rest-framework
我正在使用 django_rest_framework 处理 Django 项目。我正在尝试创建一个序列化程序,它将用户及其所属的所有组作为一个简单数组返回。
例如:
{
"username": "John Doe",
"groups": "[Group1, Group2]"
}
Run Code Online (Sandbox Code Playgroud)
然而,我当前的配置将组作为对象返回并添加属性名称,因此不幸的是,我之前的示例返回如下:
{
"username": "John Doe",
"groups": "[{"name":"Group1"},{"name":"Group2"}]"
}
Run Code Online (Sandbox Code Playgroud)
你能用 django_rest_framework 获得我想要的结果吗?这是我的序列化程序:
序列化程序.py
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class GroupSerializer(serializers.ModelSerializer):
class Meta:
model = Group
fields = ('name',)
class UserSerializer(serializers.ModelSerializer):
groups = GroupSerializer(many=True)
class Meta:
model = User
fields = ('username', 'groups')
Run Code Online (Sandbox Code Playgroud)
您可以使用SerializerMethodField。
class UserSerializer(serializers.ModelSerializer):
groups = SerializerMethodField()
class Meta:
model = User
fields = ('username', 'groups')
def get_groups(self, obj):
return [group.name for group in obj.groups]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |