2017-03-07 91 views
0

我有这个逻辑,显然不属于get_queryset函数,它给了我一个错误,我应该在哪里放置这段代码?Django Rest框架在哪里响应400

def get_queryset(self, **kwargs): 
    subcategory_id = kwargs["subcategory_id"] 
    retailer_id = kwargs["retailer_id"] 

    try: 
     subcategory = SubCategory.objects.get(id=subcategory_id) 
    except ObjectDoesNotExist: 
     return Response("no subcategory with that id", status=status.HTTP_400_BAD_REQUEST) 

我需要回答BAD_REQUEST如果没有指定id一个子类对象。

回答

2

而不是返回响应,请尝试引发异常,如ValidationErrorParseError

def get_queryset(self, **kwargs): 
    subcategory_id = kwargs["subcategory_id"] 
    retailer_id = kwargs["retailer_id"] 

    try: 
     subcategory = SubCategory.objects.get(id=subcategory_id) 
    except ObjectDoesNotExist: 
     raise ValidationError('no subcategory with that id') 

然而,在你的情况,你应该返回404,因为子目录不存在,那就是404错误是(在该网址资源不存在)。所以你应该提出一个NotFound例外。

相关问题