Python 如果通用视图成功,则调用某些函数

Python 如果通用视图成功,则调用某些函数,python,django,django-class-based-views,django-generic-views,class-based-views,Python,Django,Django Class Based Views,Django Generic Views,Class Based Views,我在项目中使用通用视图/基于类的视图,如果视图成功完成,我想调用一些函数。我使用def get_success_url()方法。但我无法达到该功能中的模型。我怎样才能摆脱这个,或者有其他方法吗 我的代码: class MyModelUpdate(UpdateView): model = MyModel fields = ['details'] def get_success_url(self, **kwargs): add_log(form.model,

我在项目中使用通用视图/基于类的视图,如果视图成功完成,我想调用一些函数。我使用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'] })

UpdateView
类实现了
UpdateMixin
,它具有
form\u valid
等方法,只有在表单数据有效时才会调用这些方法

所以你可以做:

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

UpdateView
类实现了
UpdateMixin
,它具有
form\u valid
等方法,只有在表单数据有效时才会调用这些方法

所以你可以做:

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
什么意思,你不能“接触到模型”。你尝试了什么,什么不起作用?什么意思,你不能“接触到模型”。你尝试了什么,但什么不起作用?