¿Cómo mostrar como checkbox un ManyToManyField en Django?

La visualización estándar de un ManyToManyField en Django es a través de un select múltiple, incómodo para muchos usuarios por tener que pulsar Ctrl (o Cmd en MacOSX) para seleccionar más de una opción. Además no se visualiza de un solo vistazo los valores que tiene.

La solución más simple es utilizar un checkbox para indicar los datos, para eso solo hay que especificar en el formulario que queremos utilizar el widget CheckboxSelectMultiple.

from django import forms
from models import Tabla

campo = forms.ModelMultipleChoiceField(queryset=Tabla.objects.all(), 
		widget=forms.CheckboxSelectMultiple())

2 comentarios

  1. Hola una consulta con respecto a la presentacion en el template.. es posible desglosar los campos del checkbox para mostrarlos en una tabla.

    1. Todo es posible, Gonzalo 🙂

      Yo lo que haría sería no utilizar el renderizado automático de Django para ese campo del formulario y crear la tabla en el template con los campos que se requieran.

      Gracias por comentar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *