2016-10-14 2 views
-1

클래스 기반 뷰에서 직접 kwargs를 가져 오는 방법이 있는지 궁금합니다. 나는이 클래스 내부 기능을 수행 할 수 있습니다 알고 있지만, 내가하려고 할 때 문제가 발생이 :Django 1.9 클래스 기반 뷰에서 kwargs 가져 오기

class EmployeesUpdateStudies(UpdateView): 
    form_class = form_ES 
    model = EmployeePersonal 
    template_name = 'employeesControll/employees_studies_update_form.html' 
    success_url = reverse('employee-details', kwargs={'pk': kwargs.get('pk')}) 

URL 다음

url(r'^employees/detalles/(?P<pk>[0-9]+)/$', login_required(views.EmployeeDetails.as_view()), name='employee-details') 
입니다

views.py

답변

1

kwargs을 사용할 수 없습니다. 서버가 시작될 때 장고가 클래스를로드 할 때 요청에 대한 액세스 권한이 없기 때문입니다. 대신 get_success_url 메서드를 재정의하십시오.

def get_success_url(self) 
    return reverse('employee-details', kwargs={'pk': self. kwargs['pk']}) 
+0

, 당신은 저를 저장했다. 고맙습니다! – Izuzvo

2

Alasdair의 대답으로 문제가 해결되었습니다. - 그들은 모델에 get_absolute_url()을 사용합니다 당신은 심지어 CreateView에 대한 success_url 또는 UpdateView를 제공 할 필요가 없습니다

: 당신은 그러나보기의 success_url 역할을하여 EmployeePersonal 모델의 get_absolute_url 방법을 정의 할 수 있습니다 가능한 경우 개체

모델 개체의 기본 키는 self.id입니다.


은 참조 :

Model Forms

+0

당신의 답변은 저의 다른 어플리케이션에서 저에게 도움이 될 것입니다. – Izuzvo

관련 문제