2017-03-07 87 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例外。

相關問題