Form.is_valid () immer false zurückgeben

Form.is_valid () ist immer falsch zurück, und es zeigt nie irgendeine Art von Fehler. Im Folgenden ist das Code-Snippet von forms.py, views.py und template / transaction_add_page.html

Bilden

class TransactionForm(forms.Form): account = forms.ModelChoiceField(queryset=Account.objects.none()) transactions = forms.CharField(widget=forms.Textarea(attrs={'rows':'10', 'cols':'70'})) def __init__(self, user, *args, **kwargs): super(TransactionForm, self).__init__(*args, **kwargs) self.fields['account'].queryset = Account.objects.filter(user=user) def clean_account(self): if 'account' in self.cleaned_data: account = self.cleaned_data['account'] return account raise forms.ValidationError('Please select an account.') def clean_transactions(self): if 'transactions' in self.cleaned_data: transactions = self.cleaned_data['transactions'] return transactions raise forms.ValidationError('At-least one transaction is required.') 

Aussicht

 @login_required def transaction_add_page(request): if request.method == 'POST': form = TransactionForm(request.POST) if form.is_valid(): variables = RequestContext(request, {'account': form.clean_account(), 'transactions': form.clean_transactions()}) return render_to_response('transaction_confirm_page.html', variables) form = TransactionForm(request.user) variables = RequestContext(request, {'form': form}) return render_to_response('transaction_add_page.html', variables) 

Vorlage

 {% extends "base.html" %} {% block title %}Add Transactions{% endblock %} {% block head %}Add Transactions{% endblock %} {% block content %} <form method="post" action="." > {{ form.non_field_errors }} {{ form.errors }} {% for field in form %} <div> {{ field.errors }} {{ field.label_tag }}: {{ field }} </div> {% endfor %} <input type="submit" value="Add Transactions" /> </form> {% endblock %} 

One Solution collect form web for “Form.is_valid () immer false zurückgeben”

Wenn du den initializer das User-Argument einsetzest, musst du es benutzen

 if request.method == 'POST': form = TransactionForm(user=request.user, data=request.POST) 
  • Django: Schreiben einer Ansicht, um ein Element mit Checkboxen zu löschen
  • Django Form Validierung: machen "erforderlich" bedingt?
  • Ändern von Choices von ModelMultipleChoiceField
  • Django - Overide Dateninhalt eines django-tables2 LinkColumn
  • ChoiceField zeigt bei der Verwendung eines Tupels kein leeres Label an
  • Django ModelChoiceField - etwas anderes als ID verwenden?
  • Gleiche Zeile mehrmals in einer Form in django
  • Gibt NameError mit Django 1.5 und IPython
  • Ändern Sie ein Django-Formularfeld in ein ausgeblendetes Feld
  • So fügen Sie ein Kontrollkästchen in ein Django-Formular ein
  • Automatisch generieren Formularfelder für ein Formular in django
  • Python ist die beste Programmiersprache der Welt.