제출 된 양식에서 개체를 생성 중입니다. 생성 된 AutoField
을 숨겨진 양식 요소로 다음 양식으로 전달하려고합니다. 그러나 post()
에서 get_context_data()
으로 변수를 전달하는 방법을 알 수 없습니다. 나는 post()
이 먼저 호출되고 그 다음에 get_context_data()
이 붙는 것을 알고 있지만, 변수를 self
에 추가하면 예상 한 결과를 얻지 못합니다 (속성은 self
에 없습니다). get_context_data
에서 호출 할 때post()에서 get_context_data()로 데이터 전달하기
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
print self.hello
return context
def post(self, request, *args, **kwargs):
self.hello = "hello"
return HttpResponseRedirect(request.path)
self.hello
이 유효하지 않습니다 여기에
HttpResponseRedirect(request.path)
호출로 착각할지 모르지만 템플릿을 렌더링하는 방법을 잘 모르겠습니다.
간단한 실수인가, 아니면 전혀 다른 방식으로 접근해야합니까?
'get_context_data()'는'GET' 요청 ('FormView'를 사용한다고 가정)에 대해서만 실행되며'post()'에 의해 처리되는'POST' 요청에는 실행되지 않습니다. 'get_context_data()'는 템플리트 컨텍스트를 얻는 데 사용되며, 어쨌든 리디렉션하는 경우에는 중복됩니다. 당신이 달성하고자하는 것을 정확히 설명 할 수 있습니까? – solarissmoke
여러 양식에 걸쳐 하나의 개체를 만들고 있습니다. Form1은 Form2의 페이지에 게시됩니다. Form2의'post()'에 객체의 절반을 만들고 Form2를 객체가 완성 된 방문 페이지에 제출할 수 있기를 원합니다. 어떤 객체가 만들어 졌는지 알 필요가 있으므로 첫 번째'post()'에서 생성 된'AutoField'를 가져 와서 Form2의 숨겨진 필드로 전달하여 방문 페이지'post() '이 올바른 객체에 액세스 할 것입니다. 더 좋은 방법이있을 것이라고 확신합니다. 제안은 열려 있습니다. (FormWizard 외에도 이유가 있습니다 ...) – Tyler
세션을 사용하여보기간에이 데이터를 저장할 수 있습니까? – solarissmoke