2016-04-28 12 views
0

In meiner Form Zurücksetzen, bekam ich eine Klasse Cform benannt, die zu ConstanceFormCform(ConstanceForm)ein Formular über Einstellungen Variable

In meinem 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)) 

In meiner Vorlage subclassed ist:

<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> 

Mein Problem ist, es wird nicht aktualisiert. Die Form ist immer ungültig. Ich möchte nur mein Formular oder seinen Datenbankwert auf bestimmte Daten zurücksetzen.

+0

Können Sie die form.errors veröffentlichen. wenn es nicht gültig ist, dann sollten wir das haben. – durdenk

+0

Formular gültig wird nach Validierung aufgerufen wurde erfolgreich – Sayse

+0

@Sayse, ja Sir, aber gibt es eine Möglichkeit, es direkt zu speichern. Da meine Daten von einem Standardwert sind. – Bazinga

Antwort

0

Wahrscheinlich der einfachste Weg für Sie, dies zu umgehen ist für dieses Feld eine saubere Methode in Form hinzuzufügen, und legen Sie es dort

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

Obwohl

  1. brauchen Sie es in wirklich das Formular überhaupt, wenn es immer den gleichen Wert haben wird (nur auf die Einstellung zugreifen)
  2. Es ist vielleicht keine gute Idee, Einstellungen sollten gleich bleiben wie beim ersten Start des Servers