약간의 bug 수정
1. delete, update도 target_user설정
html도 user대신 target_user로 수정
context_object_name = 'target_user'
CRUD 4가지를 사용해서 account앱을 만들었는데 몇가지 문제가 있음.
def hello_world(request):
if request.user.is_authenticated: #유저가 접속했는지 확인할 수 있음
~~~~
~~~~
else:
return HttpResponseRedirect(reverse('accountapp:login'))
updateview
def get(self, *args, **kwargs):
if self.request.user.is_authenticated:
return super().get(*args,**kwargs)
else:
return HttpResponseRedirect(reverse('accountapp:login'))
def post(self, *args, **kwargs):
if self.request.user.is_authenticated:
return super().get(*args,**kwargs)
else:
return HttpResponseRedirect(reverse('accountapp:login'))
-> 로그인 안하면 url검색해도 상세페이지 들어갈수 없음
또다른 문제점. 로그인 하고 나서는 내 계정이 아니라 다른 유저의 정보를 url 접속을 통해 수정 또는 삭제할 수 있음.
해결 법 구현
self.get_object()== self.request.user
self : 이 자체의 view를 가리킴
get_object() : 현재 사용되고 있는 object, user object중에서도 url에서 받은 pk에 해당하는 object(user)객체를 가져옴.
def get 메서드에 대해서 정확히 이해가 안됨. 그래서 질문을 찾아봄.



정리하자면 이미 UpdateView에 def get메서드가 선언 되어있음. 우리는 이 get 메서드를 조금 수정하고 싶어서 밑에 처럼 작성함.