on
Django 에어비앤비 클론 4부 (21.12.06 ~ )
Django 에어비앤비 클론 4부 (21.12.06 ~ )
그 동안의 부단한 노력으로 실력이 많이 늘었다. 이제 이거 끝내고 AWS배포를 배운 후, Djago API를 사용한 React Native 앱을 만들어보자.
# 23 Room update
- 수정 화면 접근 보안성 강화하기
1) 버튼 숨기기 with 조건문
{% if room.host == user %} Edit room {% endif %}
ui상에서는 막아지는데 url로 접근하는 똑똑이들을 막을 수 없다.
2) 해당 view에 get_object 추가한 뒤, Http404 raise하기
def get_object(self, queryset=None): room = super().get_object(queryset=queryset) if room.host.pk != self.request.user.pk: raise Http404 return room
get_object는 update_view의 메소드인데 (room_edit을 담당하는 view클래스에 상속시켰음)
display에서 보여주는 objects를 return한다.
해당 오브젝트(room)의 호스트와 접근한 유저의 pk값이 다르다면
Http404 에러를 raise하는 방식으로 처리했다. ( from django.http.response import http404 )
니꼬쌤은 "여기 있으면 안됩니다"등의 메시지를 띄우기보다는 걍 날려버리라고 한다 ㅋㅋㅋ
728x90
from http://theconcentrationoftime.tistory.com/45 by ccl(A) rewrite - 2021-12-07 00:01:18