码迷,mamicode.com
首页 > 其他好文 > 详细

创建重载的问题

时间:2018-02-07 21:22:27      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:ica   sts   view   mis   mission   ons   upper   category   pre   

正确的写法:

class CategoriesView(generics.ListCreateAPIView):
    queryset = Category.objects.all()
    serializer_class = CategorySerializers
    permission_classes = (IsAuthenticated,)

    def create(self, request, *args, **kwargs):
        if self.queryset.filter(category=request.data.get("category").upper()).exists():
            return Response(status=status.HTTP_201_CREATED)
        return super(CategoriesView, self).create(request, *args, **kwargs)

下面的这种写法:

class CategoriesView(generics.ListCreateAPIView):
    queryset = Category.objects.all()
    serializer_class = CategorySerializers
    permission_classes = (IsAuthenticated,)

    def post(self, request, *args, **kwargs):
        if self.queryset.filter(category=request.data.get("category").upper()).exists():
            return Response(status=status.HTTP_201_CREATED)
        return super(CategoriesView, self).create(request, *args, **kwargs)

会出现serializer = self.get_serializer(data=request.data)报错,提示说request不存在data属性。request参数在post中时正常的,但是在调用super(CategoriesView, self).create(request, *args, **kwargs)时,request参数的外面,django再次包裹了一次request,所以导致data属性不存在。

创建重载的问题

标签:ica   sts   view   mis   mission   ons   upper   category   pre   

原文地址:https://www.cnblogs.com/yuanoung/p/8428222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!