def hello_world(request):
if request.user.is_authenticated
else:
return HttpResponseRedirect(reverse('accountapp:login'))
Python
복사
위와같이 입력하면, 유저가 로그인이 되어있지 않으면 hello_world로 접근할 수 없고 login으로 리다이렉트 된다
class AccountUpdateView(UpdateView):
model = user
context_object_name = 'target_name'
from_class = AccountUpdateForm
success_url = reverse_lazy('accountapp:hello_world')
template_name = 'accountapp/update.html'
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'))
Python
복사
and self.get_object() == self.request.user:
self는 현재 사용하고 있는 뷰를 가르킴. get_object() 는 pk에 해당하는 유저를 가져오는데, request를 보내고 있는 유저와 같은지 확인을 한다.
else:에는 금지되어있는 곳에 접근 했다고 알려준다
return HttpResponseForbidden()