我是Django的新手,我正在学习有关视图和方法以及它们如何工作的信息,尤其是关于这个问题。问题是,我想知道如何在UpdateView中更新对象后自动在模型中保存字段的值,例如,当我更新对象时,在这种情况下,我可以分配一个人来执行的报告我想保存一个显示“状态”的模型值,并保存“已分配”或类似的值,以了解报告是否已分配。我知道有一些方法,也许其中一种方法可以通过覆盖该类来完成,但是我不知道如何应用它或使用哪种方法。
为获得帮助,这是我正在使用的UpdateViews的简单类:
class reporteupdate(UpdateView):
model = reporte_fallo
form_class = ReporteAsignar
template_name = 'formulario/jefe_asignar.html'
success_url = reverse_lazy('formulario:reporte_listar_jefe')
,我要为其分配值的模型字段称为状态。
我一直在等待您的帮助,因为我对此表示怀疑。谢谢!!!
答案 0 :(得分:0)
在后方法中创建查询字典副本后,该查询字典将可以更改,因此您可以执行以下操作:-
class SomeUpdateView(UpdateView):
model=your model
form_class=you form
def post(self, request, **kwargs):
request.POST = request.POST.copy()
request.POST['status'] = 'Assigned'
return super(SomeUpdateView, self).post(request, **kwargs)
答案 1 :(得分:0)
通过在reporteupdate
视图中覆盖form_valid()
方法,您可以在成功验证表单后设置状态标志:
class reporteupdate(UpdateView):
...
def form_valid(self, form):
# Call super() to save the model and return the success url
resp = super().form_valid(form)
# Set your status flag
self.object.status = 'assigned'
self.object.save()
return resp