2017-04-06 3 views
0

hochladen ich versuche, meine Form ein wenig zu stylen und stieß auf diese widget_tweaks. Ich habe es installiert und kann jetzt auf jedes Formular-Tag zugreifen und ihnen CSS-Klassen usw. geben, aber wenn ich versuche, das Formular zu senden, funktioniert es nicht. Wie die Seite wird nur neu geladen, aber nichts passiert ... Muss ich die Ansicht neu schreiben oder Änderungen am Modell vornehmen? Hoffe jemand kann mir helfen.Formular nicht mit widget_tweaks django

{% load widget_tweaks %} 
<form name="form" method='POST' enctype='multipart/form-data'> 
{% csrf_token %} 
{% for field in form %} 
    <div class="md-form-group float-label"> 
    {% render_field field class="md-input" %} 
    <label>{{ field.label_tag }}</label> 
</div> 
{% endfor %} 
<input type="submit" class="btn btn-default" value='Create Post' /> 

</form> 

Wenn ich die {{form}} alles außer tat funktioniert ich die Tags nicht Stil kann ...

Jeder Kommentar ist willkommen.

+0

Schreiben Sie auf der aktuellen Seite? Wenn dies nicht der Fall ist, fehlt Ihre Aktions-URL im from-Tag – dentemm

Antwort

0

Wenn es mit {{ form }} funktioniert, sollte es auch mit Widget-Tweaks funktionieren, ohne Ihren Ansichtscode zu ändern.

Edit:

Der richtige Weg Klassen in widget_tweaks hinzuzufügen ist:

{% render_field field_name class+="css_class_1 css_class_2" %} 

Oder

{{ form.field_name|add_class:"css_class_1 css_class_2" }} 

und vollständig sein: Sie können die Fehler durch das manuelle Hinzufügen zeigen {{ field.errors}} für die Felder, die Sie anzeigen möchten Fehlermeldungen

+0

nein, das Bild wird auf eine andere Seite verschoben. Ich arbeitete mit {% load widget_tweaks%} Titel: {{form.title | add_class: ""}} und jetzt funktioniert es irgendwie. Das einzige, was jetzt seltsam ist, ist, dass ich keine Nachricht wie dieses Feld bekomme, wenn ich versuche, etwas hochzuladen, es lädt die Seite einfach neu. wenn ich alles richtig ausfülle, dann funktioniert alles gut ... trotzdem danke – hansTheFranz

+0

Ah ja die Klassen müssen mit einem add_class Filter hinzugefügt werden. Der Grund dafür, dass Fehlermeldungen nicht angezeigt werden, ist, dass sie bei Verwendung von widget_tweaks manuell hinzugefügt werden müssen. Jedes Feld hat ein Fehlerattribut, das Sie anzeigen können: {{field.errors}}. Sie können auch das Fehlerattribut durchlaufen. – dentemm

+0

@Petter Friberg: Ich habe meine Antwort bearbeitet, anscheinend um eine Klasse mit dem Template Template render_field hinzuzufügen ** class + = "" ** wird benötigt – dentemm