tutorial site para framework fra español python django

site - framework django para python



Django forma opción múltiple (3)

Espero que esto ayude: D

from django import forms class Test(forms.Form): OPTIONS = ( ("a", "A"), ("b", "B"), ) name = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=OPTIONS)

Soy un novato en Django y realmente lo agradecería si pudiera ofrecerme alguna orientación. Estoy tratando de 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 abcd, y el usuario marca c y d. Además, ¿cómo especifico las opciones (no quiero usar una base de datos, una lista de cadenas es lo que tengo en mente)? Muchas gracias


forms.py

class SomeForm(forms.Form): CHOICES = ((''a'',''a''), (''b'',''b''), (''c'',''c''), (''d'',''d''),) picked = forms.MultipleChoiceField(choices=CHOICES, widget=forms.CheckboxSelectMultiple())

vistas.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 en cada tupla es el valor real que se almacenará. El segundo elemento es el nombre legible por humanos para la opción.

obteniendo cuadros seleccionados:

form.cleaned_data.get(''picked'') dará como resultado una lista de los ''valores reales''. Por ejemplo, si reemplacé el # do something with your results con la print picked , verá:

[u''a'', u''c'']

en tu consola


puede consultar este 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)