2012-03-06 12 views
7

¿cómo puedo declarar el valor inicial del botón de opción?valor inicial en el botón de radio formulario django

form.py

YESNO = (
    ('Yes','Yes'), 
    ('No', 'No'), 
) 
class MyForm(forms.Form): 
    like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO) 

myhtml.html

{{form.like}} 

intento poner:

like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO, initial={'Yes':'Yes'}) 

cuando ejecuto mi código, mi botón de selección aún no ha seleccionado.

+1

= iniciales { 'como': 'Sí'} –

Respuesta

3

pongo el valor inicial directo i n mi views.py ...

def myviews(request): 
    ..... 
    form = MyForm({'like':'Yes'}) 
    ... 
+2

para un botón de radio, esto parece estar bien, para otros campos, especialmente aquellos que requieren la entrada del usuario como texto, esto dará lugar a la validación. – Jingo

+8

-1. Este es el parámetro 'data', que, como dice Jingo, activa la validación. Use el parámetro 'initial' en su lugar. –

+0

De acuerdo. Hacer esto hace que cosas como CharFields vacías en el mismo formulario muestren errores de validación en la carga de la página en lugar de después de enviarla. – shacker

1

Sí, esto debe hacerse en la vista, pero la sintaxis en la respuesta aceptada es incorrecta, ya que activará la validación de campo en todos los campos antes de enviando el formulario. Utilice en su lugar:

def myviews(request): 
    ..... 
    form = MyForm(initial={'like':'Yes'}) 
    ... 
Cuestiones relacionadas