Django - Filtro en controles de un formulario

 
Vista:

Filtro en controles de un formulario

Publicado por cmfab (1 intervención) el 04/02/2019 18:22:27
Estimados, junto con saludarlos les comento que me estoy iniciando en la programación con Pyhon 3.7 y Django quisiera hacer la siguiente consulta:

Necesito saber como puedo ir filtrando los controles de tipo forms.select que se basan en modelos o tablas de una base de datos y los cuales se incluyen en un formulario. por ejemplo si tengo un combobox que muestra las provincias que al seleccionarlas, el próximo control comobox que muestra las localidades solo incluya las que pertenecen a la provincia seleccionada en el nivel anterior. Imagino que haya que implementar algún evento tipo onchange o algo así pero no he podido entender bien como hacerlo y no he encontrado documentación en la web.

Gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

Filtro en controles de un formulario

Publicado por Max (7 intervenciones) el 06/02/2019 16:40:38
te constestaré de acuerdo a como resolvi una situación parecida a lo que preguntas de una forma muy sencilla, espero te sirva y se adapte a lo que buscas.

yo use una opción que se implementa en el model.py

provincial_que_quiero = models.ForeignKey(General, null=False, blank=False, on_delete=models.CASCADE,limit_choices_to = { 'tipo_alguna_cosa' : 2 })

si en tu modelo logras filtrar de manera logica mediante un campo lo que quieres que se muestre cada vez que hagas el llamado en los formularios a ese campo, te aparecerán solo los que cumplen con el criterio que especificastes

por ejemplo tipo_alguna_cosa = 0 significa x
tipo_alguna_cosa = 1 significa y o u otra cosa
tipo_alguna_cosa = 2 significa otra cosa, provincia, etc....

tambien puede ser un campo boleano con solo dos valores True o False..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar