首页 > 解决方案 > Django Updateview 在 html 中不保存但在管理员中保存

问题描述

我有一个很大的表格,一些字段,取决于要计算的其他字段值。因此,每次用户完成编辑字段并使用新值将其重定向到 updateview 时,我都使用 jquery blur 提交表单。

我有这个 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>

标签: django

解决方案


几点:

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

  2. 您添加amt_absent为要包含在 UpdateView 中的字段,因此,除非不需要此字段,否则表单将继续为该字段抛出错误。这就是当您包含这两个字段时您的表单有效的原因。您可以通过在模板中使用{{form.errors}}或字段指定的错误来检查所有错误。{{form.amt_absent.errors}}


推荐阅读