2016-04-28 87 views
0

在我的表格形式,我得到了一个名为Cform一类的子类,以ConstanceFormCform(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> 

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

+0

你可以发布form.errors。如果它无效,那么我们应该有这个。 – durdenk

+0

表单验证成功后调用 – Sayse

+0

@Sayse,是的,先生,但有没有办法直接保存它。由于我的数据来自默认值。 – Bazinga

回答

0

可能为您办理最简单的办法就是在表单中添加一个干净的方法,即场和设置有

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

虽然

  1. 你真的需要它如果它始终具有相同的值,则表单总是具有相同的值(只需访问该设置)
  2. 它可能不是一个好主意,设置应该与第一次运行服务器时相同