django form von Fehlermeldungen nicht angezeigt

So, ich habe meine Ansicht:

def home_page(request):
    form = UsersForm()
    if request.method == "POST":
        form = UsersForm(request.POST)

        if form.is_valid():
            form.save()
    c = {}
    c.update(csrf(request))
    c.update({'form':form})
    return render_to_response('home_page.html', c)

meine forms.py:

class UsersForm(forms.ModelForm):

    class Meta:
        model = Users
        widgets = {'password':forms.PasswordInput()}

    def __init__(self, *args, **kwargs):
        super( UsersForm, self ).__init__(*args, **kwargs)
        self.fields[ 'first_name' ].widget.attrs[ 'placeholder' ]="First Name"  
        self.fields[ 'last_name' ].widget.attrs[ 'placeholder' ]="Last Name"
        self.fields[ 'password' ].widget.attrs[ 'placeholder' ]="Password"

und meine Vorlage:

<html>
    <body>

    <form method="post" action="">{% csrf_token %}
        {{ form.first_name }} {{form.last_name }} <br>
        {{ form.password }} <br>
        <input type="submit" value="Submit Form"/>
    </form>

    {% if form.errors %}
        {% for field in form %}
        {% for error in field.errors %}
            <p> {{ errors }} </p>
        {% endfor %}
        {% endfor %}
        {% for error in form.non_field_errors %}
        <p> {{ error }} </p>
        {% endfor %}
    {% endif %}

    </body>
</html>

Nun, Bedenken Sie, dass, bevor ich split das Formularfeld, meine form sah aus wie dieser:

    <form method="post" action="">{% csrf_token %}
            {{ form }}
        <input type="submit" value="Submit Form"/>
    </form>

und wenn die form ein problem hatte (wie, wenn eines der Felder fehlt), würde es automatisch eine Fehlermeldung geben. Nach dem aufteilen der Formular-Felder in der Vorlage (aus {{ form.first_name }}, {{ form.last_name }} und {{ form.password }} eigenen Abschnitt) es automatisch gestoppt Angabe von Fehlermeldungen. Ist das normal?

Aber das Hauptproblem ist, wie kommen meine {{ if form.Fehler }} - Anweisung funktioniert nicht /anzeigen von Fehlermeldungen, wenn es Fehlermeldungen? Zum Beispiel, wenn ich absichtlich nicht ausfüllen, ein Feld in das Formular ein und ich auf Absenden klicken, wird die Datenbank nicht aktualisiert (was eine gute Sache ist), aber es gibt keine Fehlermeldungen. Irgendeine Idee warum?

Habe ich auch versucht zu entfernen, die {{ Formen.non_field_errors }} und versuchte wieder nur Fehler im Feld so:

    {% if form.errors %}
        {% for field in form %}
        {% for error in field.errors %}
            <p> {{ errors }} </p>
        {% endfor %}
        {% endfor %}
    {% endif %}

aber es funktioniert immer noch nicht.

  • kann man das lösen den Einzug in die Ansicht-Methode und zeigen genau an, wie Sie Ihre anzeigen-code aussieht ?
  • Hoppla, okay, nur es behoben.
  • Prüfen Sie auch die Innenseite {{ form.non_field_errors }}. Legen Sie es außerhalb {% if form.errors %}. Beispiel.
  • Hm okay ich entfernte die {{ Formen.non_field_errors }} völlig, und es funktioniert immer noch nicht. Ich aktualisiert die post und gezeigt, was ich versuchte.
  • das entfernen war es nicht das, was ich meinte, aber gut zu sehen, dass es gelöst ist. Wieder die non-Feld-Fehler obwohl. Legen Sie es zurück, die außerhalb des if-Blocks. Könnte sehr praktisch sein.
InformationsquelleAutor user2719875 | 2013-09-22
Schreibe einen Kommentar