Python/Django

[Django] login user와 요청 user validate 해주기 (DetailView)

insub4067 2021. 12. 28. 23:32
class UserProfileView(DetailView):

    model = users_models.User
    template_name = "users/profile/profile.html"
    context_object_name = "user_obj"

	#dispatch override
    def dispatch(self, request, pk):
    
    	# 현재 유저
        user_pk = request.user.pk
        
        # url query로 받아온 유저 pk
        url_pk =  pk
        
        # 만약 둘이 일치 한다면
        if user_pk is url_pk:
            return super(UserProfileView, self).dispatch(request)
            
        # if에서 걸러지지 못한다면 에러 메시지 띄우고 redirect    
        messages.error(request, "유저 정보가 일치 하지 않습니다")
        return redirect(reverse("core:home"))