= request.data[“spam”] except KeyError: raise NotSpamError with transaction.atomic(): (A long code like a galaxy far, far away…) return Response(BreakfastSerializer(instance).data)
= request.data[“spam”] except KeyError: raise NotSpamError with transaction.atomic(): (A long code like a galaxy far, far away…) return Response(BreakfastSerializer(instance).data) request_bodyのチェックをviewで行っている 宇宙みたいなコードでした
request.data[“spam”] if spam < 2: raise SpamLackError except KeyError: raise NotSpamError ham = request.data.get(“ham”, None) egg = request.data.get(“egg”, None) if ham and egg: raise HamEggError with transaction.atomic(): (A long code like a galaxy far, far away…) return Response(BreakfastSerializer(instance).data)
seriarizer.is_valid(raise_exception=True) with transaction.atomic(): s = BreakfastService(spam) s.method1() res = s.method2() return Response(ResponseSerializer(instance).data) チェック処理は全部Serializerに押し込んだ 型やその他のチェックも全部ここでやるよ!