Django Updateview不保存在html中,但保存在admin中

时间:2019-04-14 08:15:02

标签: django

我有一个很大的形式,一些字段,取决于其他字段的值来计算。 从那时起,每当用户完成字段编辑后,我都会使用jquery blur提交表单,然后使用新值将其重定向到updateview。

我有这个day_absent,并且没有多少可以测试。 如果我只是将form.day_absent放在表单中,然后放入object.amt_absent,则它不会保存表单。但是,如果我输入form.amt_absent,它将保存该表单。

那是为什么?我不希望将amt_absent设置为可编辑,它应该只是day_absent。

class PayrollTransactionUpdate(LoginRequiredMixin,UpdateView):
model = t_pay
template_name = 'payroll/transaction/update.html'

fields = [
    'day_absent',
    'amt_absent',
]

      <div id='input-item' class="col-1">
        {{ form.day_absent }}
        {{ form.day_absent.errors}}

      </div>
      <div id='item' class="col-2">
        {{ object.amt_absent }}
      </div>

1 个答案:

答案 0 :(得分:1)

点对:

  1. 使用{{object.amt_absent}}时,不是呈现字段amt_absent的表单,而是呈现保存在数据库中的值。

  2. 您添加了amt_absent作为要包含在UpdateView中的字段,因此,直到并且除非不需要该字段,否则表单将继续为此字段抛出错误。这就是为什么当您同时包含两个字段时您的表单可以工作的原因。您可以使用{{form.errors}}检查所有错误,也可以使用模板中的{{form.amt_absent.errors}}检查字段指定的错误。