2014-12-10 11 views
6

Nella mia app Django 1.7, sto cercando di sfruttare la classe MultiValueField per implementare un elemento password/conferma password, cioè due campi password separati che richiedono all'utente di inserire e confermare un nuova password. Ho già ottenuto questo lavoro con due campi separati e un metodo clean() nel mio modulo, ma il "singolo" MultiValueField sembra un modo migliore per mantenere il principio di DRY, specialmente dal momento che dovrò duplicarlo non solo nel mio modulo di registrazione utente, ma anche quando gli utenti vogliono cambiare le loro password.Visualizzazione manuale dei sottocampi di un campo multiplo

Tuttavia, il mio front-end è piuttosto specifico, e non è minimamente simile all'output predefinito di Django, quindi sono manually rendering my form fields. Funziona alla grande - finché non arrivo al MultiValueField. Per ogni campo di modulo, il mio HTML è simile al seguente:

<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> 

ho bisogno di fare la formattazione simile per ciascuno dei sottocampi di form.password, ma nulla ho provato mi ha dato un sottocampo reso; il più vicino a cui sono arrivato è {{ form.fields.password.fields.0 }} nel mio modello, che mi dà l'output come <app.fields.PassField object at 0x7fb619821ef0>, tuttavia questo ovviamente non è un campo modulo reso.

C'è qualcosa di semplice e ovvio che mi manca, o è quello che sto cercando di fare solo non è possibile in Django?

+0

Dopo un'ora di logica di convalida chiaramente segregante con MultivalueField e MultiWidgets, mi sono bloccato in questo posto. Sei riuscito a superare questo? Lo apprezzerei immensamente! :) – farthVader

+1

Questa soluzione ha funzionato per me. http://stackoverflow.com/questions/24866936/render-only-one-part-of-a-multiwidget-in-django – farthVader

risposta

Problemi correlati