簡體   English   中英

Django REST 視圖集創建

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM