2016-07-20 7 views
0

Wie trigger ich das Gegenteil von is_valid()? Dies ist, wie ich es getan habe bisher:Wie man Modellformfehler in Django ausgibt

def post(self, request): 
     user_form = self.form_class(request.POST) 
     second_form = self.second_form_class(request.POST) 

    if user_form.is_valid() and second_form.is_valid(): 
     user = user_form.save(commit=False) 
     invite = second_form.save(commit=False) 

     username = user_form.cleaned_data['username'] 
     password = user_form.cleaned_data['password'] 
     email = user_form.cleaned_data['email'] 
     code = second_form.cleaned_data['code'] 

     user.set_password(password) 
     user.is_staff = True 
     user.save() 

     user = authenticate(username=username, password=password) 

     if user is not None: 
      if user.is_active: 
       login(request, user) 
       return redirect('main:welcome') 

ich überprüfen möchten, ob dies wahr ist, aber ich weiß nicht, wie es in meiner allgemeine Ansicht zu implementieren:

the_invite = Invites.objects.filter(code=code) 

if the_invite.exists(): 
    the_invite.delete() 
else: 
    second_form.add_error() 

Ich möchte einfach eine Ausgabe wie diese Fehlermeldung mit zum Beispiel: „eingegeben Sie den falschen Code“: enter link description here

Antwort

0

„Ich mag einfach eine Ausgabe wie diese Fehlermeldung mit zum Beispiel:‚Sie haben den falschen Code‘“

Nun können Sie Fehler hinzufügen, wie diese zu bilden:

form._errors = ErrorDict() 
errors = form._errors.setdefault('[name of the field that failed verification]', ErrorList()) 
errors.append('[Your error message]') 

und dann wieder dieses Formular zurück zum Benutzer.

0

Wenn Form ungültig ist, müssen Sie es schicken, um Vorlage und render:

{{ form.errors }} 
+0

Ja, aber sobald ich einen Wert in der second_form eingeben, ist es zum Beispiel True, auch wenn das Objekt nicht in der Datenbank ist. Wie könnte ich das überprüfen? –

+0

Das Formular, für das Sie Fehler benötigen, müssen Sie an tamplate übergeben und seine Fehler rendern. Von welcher Form kommt Ihre Anfrage? – Gocht

Verwandte Themen