Django编写通用更新视图

时间:2016-02-07 07:37:54

标签: django class view updates

我正在尝试为我的需求编写通用更新视图。 我的视图应该在不同的模型中更新具有相同名称的字段。 以与@permission_required装饰器类似的方式检查用户是否具有该权限。 应该在一个对象上工作。 使用ajax请求 - 意味着我需要返回一个代码/ json。 我没有使用内置的django,我自己写的。 由于这些原因,我无法使用UpdateView中内置的django。 我想扩展SingleObjectMixin。我陷入了将模型保存到数据库的地方。

1 个答案:

答案 0 :(得分:0)

__block

或者,您可以使用表单保存方法实现它:

class MyUpdateView(generic.UpdateView):
   ...

   def form_valid(self,form):
     # ... do something here ...
     obj = form.save()
     obj1 = AnotherModel.objects.get(...)
     obj1.the_field = obj.the_field
     obj1.save()
     obj2 = YetAnotherModel.objects.get(...)
     obj2.the_field = obj.the_field
     obj2.save()
     return super(MyUpdateView,self).form_valid()

然后在你看来:

class MyForm(forms.ModelForm):

   def save(self):

      obj = super(MyForm,self).save()
      # ... save to other models
      return obj