4
DetailView를 사용하여 Project 개체를보고 있는데이 개체를 데코레이터로 전달하기 위해보고있는 Project 개체에 액세스하고 싶습니다. 이런 일이 :Django 클래스 기반 일반 뷰에서 컨텍스트 개체에 액세스
class ProjectDetailView(DetailView):
context_object_name = "project"
model = Project
@method_decorator(membership_required(project))
def dispatch(self, *args, **kwargs):
return super(ProjectDetailView, self).dispatch(*args, **kwargs)
그러나, "프로젝트"또는 장식에 "개체"를 전달하는 것은 나에게 "개체"가 아닌 프로젝트 인스턴스를 제공합니다. 데코레이터 기능이이 프로젝트 인스턴스에서 작동하도록하려면 어떻게해야합니까?
도움 주셔서 감사합니다! :) – Asterism
'request.user' 대신'self.request.user'를 사용해야하는 이유를 말씀해 주시겠습니까? 나는'request.user'로 코드를 시도했는데 효과가 있었지만 우연인지는 알 수 없습니다. – Asterism
네, 메소드에 매개 변수로 전달되기 때문에'request.user'를 사용할 수 있습니다. 나는 단지 그것을 알아 차리지 못했다. 일반적으로 클래스 기반 뷰에서 메소드를 대체 할 때 매개 변수로 요청을 얻지 못합니다 ('get_context_data','get_query_set','get_object' 등의 메소드). –