Soy un novato en Django y realmente apreciaría que me pudieras ofrecer alguna guía. Intento crear un formulario que permita a un usuario marcar una o más opciones. Entendí que debo usar el campo MultipleChoiceField con un widget CheckboxSelectMultiple, pero la documentación de Django no ofrece un ejemplo sobre este tema. Le agradecería que me ofreciera un ejemplo y me explicara cómo manejo los resultados. Por ejemplo, si tengo un formulario con las opciones a b c d, y el usuario marca cyd. Además, ¿cómo especifico las opciones (no quiero usar un db, una lista de cadenas es lo que tengo en mente)? Muchas graciasDjango forma múltiple opción
Respuesta
esperanza esto ayuda: D
from django import forms
class Test(forms.Form):
OPTIONS = (
("a", "A"),
("b", "B"),
)
name = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
choices=OPTIONS)
forms.py
class SomeForm(forms.Form):
CHOICES = (('a','a'),
('b','b'),
('c','c'),
('d','d'),)
picked = forms.MultipleChoiceField(choices=CHOICES, widget=forms.CheckboxSelectMultiple())
views.py
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
if form.is_valid():
picked = form.cleaned_data.get('picked')
# do something with your results
else:
form = SomeForm
return render_to_response('some_template.html', {'form':form },
context_instance=RequestContext(request))
some_template.html
<form method='post'>
{{ form.as_p }}
<input type='submit' value='submit'>
</form>
resultados:
explicación:
opciones:
El primer elemento de cada tupla es la valor real para ser almacenados. El segundo elemento es el nombre legible para humanos para la opción.
conseguir cajas seleccionadas:
form.cleaned_data.get('picked')
dará como resultado una lista de los 'valores reales'. Por ejemplo, si sustituye la # do something with your results
con print picked
ves:
[u'a', u'c']
en su consola
Muchas gracias ... realmente me ha aclarado las cosas. Todavía tengo una pregunta más. Cuando trato de manejar los resultados, trato de manejar cada elemento de la lista como u'a 'o solo la cadena' a '. – Bigdinrock
¡esta es una muy buena respuesta! ¡gracias! – user1451340
¿Cómo tomar una lista de nombres legibles por humanos? Necesito tomar la lista de la segunda opción de tupla. –
Esto se puede comprobar https://pypi.python.org/pypi/django-multiselectfield/
from multiselectfield import MultiSelectField
# ...
MY_CHOICES = (('item_key1', 'Item title 1.1'),
('item_key2', 'Item title 1.2'),
('item_key3', 'Item title 1.3'),
('item_key4', 'Item title 1.4'),
('item_key5', 'Item title 1.5'))
MY_CHOICES2 = ((1, 'Item title 2.1'),
(2, 'Item title 2.2'),
(3, 'Item title 2.3'),
(4, 'Item title 2.4'),
(5, 'Item title 2.5'))
class MyModel(models.Model):
# .....
my_field = MultiSelectField(choices=MY_CHOICES)
my_field2 = MultiSelectField(choices=MY_CHOICES2,
max_choices=3,
max_length=3)
- 1. Opción múltiple en WinForms
- 2. Opción múltiple ListView y SharedPreferences
- 3. Objeto múltiple Django excluir()
- 4. AlertDialog de opción múltiple con adaptador personalizado
- 5. Django Campo de selección múltiple/Casilla de verificación Seleccionar múltiple
- 6. Forma de resorte: opción
- 7. Django widget de selección múltiple?
- 8. ¿Forma fácil de hacer la opción múltiple de ListPreference en Android?
- 9. Django: Opción de pantalla Valor
- 10. Opción "Desactivado" para choiceField - Django
- 11. Obtener la última opción cliqueada en múltiple seleccione
- 12. Django como una caja de selección múltiple
- 13. instalación de pip con la opción borrar de forma predeterminada
- 14. Opción añadir dinámicamente al plugin elegido JQuery de selección múltiple
- 15. opción Obtener hecho clic en el menú desplegable múltiple
- 16. Django, campo de opción de opciones
- 17. Django, ¿cómo eliminar la opción en blanco del campo de elección en forma de modelo?
- 18. Django forma de error
- 19. Forma Django is_valid() falla
- 20. forma Django y i18n
- 21. casilla preseleccionada en Django Django con forma
- 22. Usando inversa() en Django forma
- 23. ¿Cómo selecciono una opción del menú Django ModelForm por defecto?
- 24. Django forma de formatear condicional
- 25. forma Django errores impresiones __all__
- 26. Inserción múltiple múltiple de SQL
- 27. En forma Django, SelectField personalizado y SelectMultipleField
- 28. Soporte de base de datos múltiple en django
- 29. forma del acceso Selección múltiple de campo en el frasco
- 30. Forma de rieles (seleccionar/opción): cómo marcar la opción seleccionada con HAML?
¿Cómo hago pantalla Django/valores seleccionados cuando ya está guardado editando el formulario? – YoYo