[英]Django REST ViewSet create
我有一个员工视图集,我想在其中添加创建定义,这样我就可以设置employer=request.user.pk 并添加员工(用户)。
我尝试过创建定义(请参见下面的代码),但序列化程序始终无效,因此它返回状态 400。我不知道是不是我,但似乎缺少关于创建 function 的文档,所以我可以t弄清楚如何正确地做到这一点。 有任何想法吗?
class EmployeeViewSet(viewsets.ModelViewSet):
queryset = CustomUser.objects.all()
serializer_class = CustomUserSerializer
def list(self, request):
queryset = self.queryset.filter(employer=request.user.pk)
serializer = CustomUserSerializer(queryset, many=True)
return Response(serializer.data)
def create(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
CustomUser.objects.create_user(**serializer.validated_data)
return Response(serializer.validated_data, status=status.HTTP_201_CREATED)
return Response({'status': 'Bad Request',
'message': serializer.is_valid()},
status=status.HTTP_400_BAD_REQUEST)
将perform_create
方法重写为,
class EmployeeViewSet(viewsets.ModelViewSet):
queryset = CustomUser.objects.all()
serializer_class = CustomUserSerializer
def get_queryset(self):
return CustomUser.objects.filter(employer=self.request.user.pk)
def perform_create(self, serializer): serializer.save(employer=self.request.user)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.