Jit*_*dra 4 python django django-views django-serializer django-rest-framework
这些是演示模型
class Author(models.Model):
name = models.CharField(max_lenght=5)
class Post(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
title = models.CharField(max_lenght=50)
body = models.TextField()
Run Code Online (Sandbox Code Playgroud)
各自的观点是
class AuthorViewSet(viewsets.ModelViewSet):
queryset = Author.objects.all()
serializer_class = AuthorSerializer
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostStatSerializer
Run Code Online (Sandbox Code Playgroud)
我正在尝试对 PostViewSet 执行更新/放置操作,并且成功,但我期待不同的输出。成功更新帖子记录后,我想使用 AuthorSerializer 将其作者记录作为输出发送。如何覆盖它并添加此功能?
您可以update为此覆盖方法:
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostStatSerializer
def update(self, request, *args, **kwargs):
partial = kwargs.pop('partial', False)
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
# this will return autor's data as a response
return Response(AuthorSerializer(instance.parent).data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5455 次 |
| 最近记录: |