0
我正在使用DJango REST Framework模塊在DJango中工作。創建自APIView繼承的自定義抽象視圖類
對於每個模型我做,我有一個觀點:
class CustomAPIView(APIView):
renderer_classes = (JSONRenderer,)
permission_classes = (IsAuthenticated,)
@csrf_exempt
def post(self, request):
raw_data = serializers.SearchStateSerializer(data=request.data)
if raw_data.is_valid():
searched_data = serializers.ShowStateSerializer(data=serializers.State.objects.extra(where=raw_data.data['where'], order_by=raw_data.data['order_by']), many=True)
return JsonResponse(paginate_data(searched_data=searched_data, request_data=raw_data), status=status.HTTP_202_ACCEPTED)
else:
return JsonResponse(raw_data.errors, status=status.HTTP_400_BAD_REQUEST)
在這段代碼中,有3個約束條件發生變化:
- SearchStateSerializer
- ShowStateSerializer
- 國家(型號)
所以我想創建一個抽象,我只指定這3件事情和視圖的作品。我怎樣才能做到這一點?我搜索了很多,但沒有運氣。必須提供這3個約束,否則會引發錯誤。
非常感謝!只是想知道有沒有更好的辦法? – iamhssingh
這是製作泛型類的方法。另一種方法是使用get_serializer_class之類的get方法。在這種情況下,您可以重寫方法。 –