通过设置变量重置表单

时间:2016-04-28 16:21:28

标签: python django django-settings

在我的表单中,我找到了一个名为Cform的类,该类被子类化为ConstanceForm Cform(ConstanceForm)

在我的views.py

class ResetCView(FormView):
    template_name = 'c.htm.jinja'
    form_class = Cform
    model = CModel

    def form_valid(self.form):
        form.cleaned['C_CODE'] = settings.C_CODE
        form.save()
        return HttpResponseRedirect(reverse('cview))

在我的模板中:

<form method="post" action="{{url('c-reset')}}" name="form">
          <button>Reset</button>
</form>
<form method="post" action="{{url('c-view')}}" name="form">
          {{ form.as_p}}
</form>

我的问题是它没有更新。表格始终无效。我只想将表单或其数据库值重置为特定数据。

1 个答案:

答案 0 :(得分:0)

可能最简单的处理方法是在该字段的表单中添加一个干净的方法并将其设置在那里

def clean_c_code(self):
    self.cleaned_data['C_CODE'] = settings.C_CODE
    return self.cleaned_data['C_CODE']

虽然,

  1. 如果它总是具有相同的值(只是访问设置),你真的需要它在表格中吗?
  2. 根本不是一个好主意,设置应该与第一次运行服务器时保持一致