Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 와이어프레임
- 댓글쓰기
- DRF
- python to json
- 개인페이지
- Django
- 북마크한 목록 가져오기
- 이진 논리 회귀
- 프로필사진 업로드
- ERD
- 머신러닝
- 팔로우 기능 에러
- js
- test.py
- 백엔드
- serializer
- class view
- json to db
- 댓글지우기
- docker
- 팀프로젝트 기획
- 딥러닝
- original set
- 장고
- 다항 논리 회귀
- 비밀번호 수정
- API명세
- CNN
- Python
- 프론트엔드
Archives
- Today
- Total
코딩 개발일지
blank와null 차이점? / 권한설정 방법 2가지 / serializer 꿀팁 본문
- blank 와 null 의 차이점 = " " 와 None
- 권한 설정을 하는 여러 방법 중 2가지 소개
1. if 문을 이용해서 로그인한 사용자와 댓글만 사용자가 같을 때만 삭제가가능하도록 코드 짜기
def delete(self, request, article_id, comment_id):
comment = get_object_or_404(Comment, id=comment_id)
if request.user == comment.user:
comment.delete()
return Response("삭제완료", status=status.HTTP_204_NO_CONTENT)
else:
return Response("권한이 없습니다!", status=status.HTTP_403_FORBIDDEN)
2. comment를 정의할 때, user=request.user 를 괄호안에 넣어줘서 아예 가져오는걸 같은user꺼만 가져오기
def delete(self, request, article_id, comment_id):
comment = get_object_or_404(Comment, id=comment_id, user=request.user)
comment.delete()
return Response("삭제완료", status=status.HTTP_204_NO_CONTENT)
- serializer에서 생성 / 수정 구분법?
post/ / put 했을때, serializer( ) 에서 괄호안에 어떤걸 넣느냐를 보면 바로 알 수 있다.
아래는 post를 받고, data=request.data를 넣었다.
def post(self, request):
serializer = ArticleCreateSerializer(data=request.data)
if serializer.is_valid():
serializer.save(user=request.user)
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
아래는 put을 받고, article과 data=request.data를 넣었다. article을 넣어줌으로써, 해당 article을 가져와서 save하는 개념이기때문에, 수정하기가 되는것이다.
원하는 article을 serializer를 이용해서 코드를 짜고싶을땐, article을 넣어주면 된다는 뜻이므로 다른 기능을 구현할 때 응용할 수 있을 것이다.
def put(self, request, article_id):
article = get_object_or_404(Article, id=article_id)
if request.user == article.user:
serializer = ArticleCreateSerializer(article, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
else:
return Response("권한이 없습니다!", status=status.HTTP_403_FORBIDDEN)
'AI 본 교육 > AI 7주차' 카테고리의 다른 글
장고(Django) AbstractBaseUser의 models.py / admin.py (0) | 2023.09.27 |
---|---|
이미지첨부 form-data (0) | 2023.09.22 |
백엔드(Django) + 프론트엔드(js, html) user기능 연결 (0) | 2023.09.21 |
장고(Django) stateful/stateless/쿠키/토큰 (0) | 2023.09.21 |
장고(Django) serializer / class view / CORS (0) | 2023.09.19 |