def post(self, request):
serializer = ArticleSerializer(data=request.data)
serializer.is_valid(raise_exception=True):
serializer.save(user=request.user)
return Response(({"message": "게시글 작성 완료!"}, serializer.data), status=status.HTTP_201_CREATED)
- raise_exception=True를 is_valid 뒤에 추가해 주면 raise된 에러를 가시적으로 클라이언트에 전달하는 것이 가능하다.
if not serializer.is_valid():
raise ValidationError(serializer.errors)
=
serializer.is_valid(raise_exception=True)
https://stackoverflow.com/questions/40348981/django-rest-framework-raise-exception-true
강의에선 if serializer.is_valid() ... else ... 이렇게 쓰고 과제 해설에선 if serializer.is_valid(raise_exeption=True)를 썼는데 좋아 보인다고 다 갖다 쓰는게 좋은게 아니고 사소해보이는 것도 자세하게 제대로 알고 써야한다는걸 배웠다.
+ partial=True
# partial을 True로 설정할 경우 required field에 대한 validation을 수행하지 않는다.
# 주로 일부 필드를 update 할 때 사용된다.
user_serializer = UserSerializer(data=request.data, partial=True)
raise_exception=True 찾다가 발견. 나중에 쓸 일이 있으려나.
https://opentutorials.org/module/782/6083
'TIL' 카테고리의 다른 글
TIL 053123 (0) | 2023.05.31 |
---|---|
TIL 053023 (0) | 2023.05.31 |
TIL 052623 (0) | 2023.05.27 |
TIL 052523 (0) | 2023.05.25 |
TIL 052423 (0) | 2023.05.25 |