如果 Generic View 成功调用一些函数
Calling some functions if Generic View is success
我在我的项目中使用通用 views/class-based 视图,如果视图成功完成,我想调用一些函数。我使用这个 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
class实现了UpdateMixin
,其中有form_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
我在我的项目中使用通用 views/class-based 视图,如果视图成功完成,我想调用一些函数。我使用这个 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
class实现了UpdateMixin
,其中有form_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