我需要显示“user_permissions”的名称而不是他们的 ID。
序列化器.py:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'first_name', 'last_name', 'username', 'email','password','is_active',
'date_joined', 'groups', 'user_permissions')
extra_kwargs = {'username' : {'read_only': True},'password': {'write_only': True}, 'is_active':
{'read_only': True}, 'date_joined': {'read_only': True}, 'groups':{ 'read_only' :
True} , 'user_permissions':{ 'read_only' : True} }
Views.py:
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
答案 0 :(得分:2)
您可以使用 StringRelatedSerializer
[drf-doc] 在相关模式上调用 str(…)
,从而返回这些调用的结果列表。例如:
class UserSerializer(serializers.ModelSerializer):
user_permissions = serializers.StringRelatedField(read_only=True, many=True)
class Meta:
model = User
fields = ('id', 'first_name', 'last_name', 'username', 'email','password','is_active',
'date_joined', 'groups', 'user_permissions')
extra_kwargs = {
'username' : {'read_only': True},
'password': {'write_only': True},
'is_active': {'read_only': True},
'date_joined': {'read_only': True},
'groups':{ 'read_only' : True}
}