2013-10-15 1 views
0

장고 CreateView에 추가 컨텍스트를 전달하려고합니다. 나는 다음과 같은 URL이 있습니다Django CreateView가 사라지는 양식

url(
    regex = r'^add/(?P<complainant_pk>\d+)/$', 
    view = ComplaintCreateView.as_view(), 
    name = 'register_complaint', 
), 

을하고 뷰는 다음과 같습니다

{% crispy form %} 

VariableDoesNotExist at /complaints/add/6/ 
Failed lookup for key [form] in... 
말 :

class ComplaintCreateView(PermissionRequiredMixin, CreateView): 
    model = Complaint 
    form_class = ComplaintForm 
    login_url = "/login/" 
    permission_required = "complaints.add_complaint" 

    def get_context_data(self, **kwargs): 
     # Call the base implementation to get a context 
     context = super(ComplaintCreateView, self).get_context_data(**kwargs) 
     context['complainant'] = Complainant.objects.get(
      pk=self.kwargs['complainant_pk'] 
     ) 

이 템플릿 라인에서 오는 템플릿 오류로 연결

오버라이드를 제거하면 e는 get_context_data에 양식을 잘 나타내지 만, 당연히 나는 여분의 문맥을 가지고 있지 않습니다. 이 문제의 원인은 무엇입니까? 코드가 모델 이름을 제외하고 내 사이트의 다른 곳에서 작동하는 코드와 동일하기 때문에 완전히 엉망입니다. 나는 form_class이 내 새로운 get_context_data에 의해 어떻게 든 무시 당하고있는 경우에 대비하여 get_form_class을 무시하려고 시도했지만 도움이되지 않았습니다.

답변

2

오버라이드 된 메소드에서 아무 것도 반환하지 않았습니다! 따라서 대답은 get_context_data 블록을 return context으로 끝내야합니다.