not - modelchoicefield django example
Django, ModelChoiceField() y valor inicial (5)
Estoy usando algo como esto:
field1 = forms.ModelChoiceField(queryset=...)
¿Cómo puedo hacer que mi formulario muestre el valor como seleccionado?
El código
form = YourForm(initial = {''field1'': instance_of_mymodel.pk })
y
form = YourForm(initial = {''field1'': instance_of_mymodel })
o campo inicial directamente siguiente:
field1 = forms.ModelChoiceField(queryset=..., initial=0)
Todo el trabajo.
Las dos primeras formas anularán la forma final.
Los tiempos que han cambiado:
El valor inicial predeterminado ahora se puede establecer definiendo el initial
como otros campos de formulario excepto que lo establezca en el ID en lugar .
Ahora esto será suficiente:
form = YourForm(initial = {''field1'': instance_of_mymodel })
Aunque ambos siguen funcionando.
Si desea establecer el valor inicial predeterminado, debe definir el initial
como otros campos de formulario, excepto que lo establezca en el ID .
Digamos que tienes field1
así:
class YourForm(forms.Form):
field1 = forms.ModelChoiceField(queryset = MyModel.objects.all() )
entonces necesitas establecer inicial cuando creas tu formulario de esta manera:
form = YourForm(initial = {''field1'': instance_of_mymodel.pk })
más bien que:
form = YourForm(initial = {''field1'': instance_of_mymodel })
También asumo que ha definido __unicode__
para sus modelos, así que esto se muestra correctamente.
Solo puedes usar
field1 = forms.ModelChoiceField(queryset=..., initial=0)
para hacer el primer valor seleccionado, etc. Es la forma más genérica, luego la otra respuesta.
También podrías hacer esto:
form = YourForm(initial = {''field1'': pk })
Si está analizando su clave principal a través de una cadena de consulta o mediante una llamada ajax sin necesidad de una instancia, el conjunto de consultas ya ha manejado que para su menú desplegable, pk indexa el estado que desea