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