0

내 프로젝트에서 일반 뷰/클래스 기반 뷰를 사용하고 뷰가 성공적으로 완료되면 일부 함수를 호출하려고합니다. 나는이 def get_success_url() 메소드에 사용한다. 그러나 나는 그 기능에서 모델에 접근 할 수 없다. 어떻게 제거 할 수 있습니까? 아니면이를 수행 할 다른 방법이 있습니까?일반 뷰가 성공한 경우 일부 함수 호출

내 코드 :

class MyModelUpdate(UpdateView): 
    model = MyModel 
    fields = ['details'] 

    def get_success_url(self, **kwargs): 
     add_log(form.model, 2, 1, request.POST.user) 
     return reverse_lazy('model-detail', kwargs = {'pk' : self.kwargs['model_id'] }) 
+1

, 당신은 "모델 도달"할 수 없다. 시도한 것은 무엇이고 효과가없는 것은 무엇입니까? –

답변

2

UpdateView 클래스는 폼 데이터가 유효한 경우에만라고 form_valid, 등의 방법이있는, UpdateMixin을 구현합니다.

그래서 당신은 할 수 :

무슨 뜻 이죠
class MyModelUpdate(UpdateView): 
    model = MyModel 
    fields = ['details'] 

    def get_success_url(self, **kwargs): 
     return reverse_lazy('model-detail', kwargs={'pk': self.kwargs['model_id']}) 

    def form_valid(self, form): 
     # The super call to form_valid creates a model instance 
     # under self.object. 
     response = super(MyModelUpdate, self).form_valid(form) 

     # Do custom stuff here... 
     add_log(self.object, 2, 1, self.request.POST.user) 

     return response 
관련 문제