2014-12-10 4 views
6

In meiner Django 1.7 App versuche ich, die MultiValueField Klasse zu nutzen, um ein Passwort/Bestätigungspasswort zu implementieren, dh zwei separate Passwortfelder, die den Benutzer zur Eingabe auffordern und dann bestätigen Neues Kennwort. Ich habe das bereits mit zwei separaten Feldern und einer clean() Methode auf meinem Formular gearbeitet, aber das "einzelne" MultiValueField scheint eine bessere Methode zu sein, das DRY-Prinzip aufrecht zu erhalten, besonders da ich das nicht nur in meinem Benutzerregistrierungsformular duplizieren muss. aber auch wenn Benutzer ihre Passwörter ändern wollen.Manuelles Rendern von Teilfeldern eines MultiValueFields

Allerdings ist mein Front-End ziemlich spezifisch, und nicht das kleinste bisschen wie Djangos Standard-Formularausgabe, also bin ich manually rendering my form fields. Das funktioniert super - bis ich zum MultiValueField komme. Für jedes Formularfeld, sieht mein HTML wie folgt aus:

<div class="row collapse">                                                          
    <div class="small-2 columns">                                                        
     <span class="prefix"><i class="fi-mail"></i></span>                                                 
    </div>                                                              
    <div class="small-10 columns {% if form.email.errors %}error{% endif %}">                                             
     {{ form.email }}                                                          
     {% if form.email.errors %}<small class="error">{{ form.email.errors }}</small>{% endif %}                                        
    </div>                                                              
</div> 

ich ähnliche Formatierung für jeden der Teilbereiche des form.password, aber nichts, was ich versucht zu tun, brauchen habe, hat mir ein gerendertes Teilfeld gegeben; Der nächste, den ich komme, ist {{ form.fields.password.fields.0 }} in meiner Vorlage, die mir Ausgabe wie <app.fields.PassField object at 0x7fb619821ef0> gibt, jedoch ist dies offensichtlich kein gerendertes Formularfeld.

Gibt es etwas Einfaches und Offensichtliches, dass ich vermisse, oder ist das, was ich versuche, in Django einfach nicht möglich?

+0

Nach einer Stunde klar Trennung Validierung Logik mit MultivalueField und MultiWidgets, blieb ich an dieser Stelle stecken. Konnten Sie das überwinden? Ich würde es sehr schätzen! :) – farthVader

+1

Diese Lösung hat für mich funktioniert. http://stackoverflow.com/questions/24866936/render-only-one-part-of-a- multiwidget-in-django – farthVader

Antwort

Verwandte Themen