使用
HyperlinkedRelatedField
对于中的组
ResourceSerializer
或者只是为此操作创建一个新的序列化程序(主要思想是使用序列化程序而不是直接从请求体获取数据),如下所示:
class ResourceSerializer(serializers.HyperlinkedModelSerializer):
groups = serializers.HyperlinkedRelatedField(
many=True,
read_only=True,
view_name='groups-detail' ## name of the groups detail url
)
class Meta:
model = Resource
....
@action(methods=['put'], detail=True)
def groups_append(self, request, pk=None):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
### then get the groups from the validated data
groups = serializer.validated_data.get('groups', [])
....
....
参考文献:
1-
hyperlinkedrelatedfield