使用DRF和DRF嵌套路由器
这是我的代码:
class MemberViewSet(viewsets.ViewSet):
queryset = GroupMember.objects.all()
serializer_class = GroupMembersSerializer
def create(self, request, group_pk=None):
queryset = self.queryset.all()
serializer = GroupMembersSerializer(queryset)
return Response(serializer.data)
但是一旦发布新成员,错误“QuerySet”对象就没有属性'user'出现
任何帮助?
答案 0 :(得分:2)
要序列化查询集(或对象列表),您需要传递many=True
serializer = GroupMembersSerializer(queryset, many=True)
否则它认为您要序列化单个GroupMember
实例,这就是为什么它试图访问它上面的user
属性
答案 1 :(得分:1)
如果您的开发时间太晚而且您可以选择,则可能需要查看https://github.com/chibisov/drf-extensions。它以非侵入方式嵌套路由器 - 您不会被要求覆盖视图集基本方法。
我从过去了解到,drf-nested-routers会干扰底层视图集方法,这些方法可以对您的类进行分页和过滤:
在我看来,它对Viewset设计和功能的影响太大了。