[pyar] Consulta Django (Forms)

Lucas Liendo mindmaster en gmail.com
Sab Abr 2 23:48:10 ART 2016


Le voy a pegar una mirada tanto a django-forms-builder como a inspect ! De
todas formas si alguien tiene mas ideas acerca de esto, mas que bievenido !
Muchisimas gracias !

On Friday, April 1, 2016, Daniel <dmlistapython en gmail.com> wrote:

> tiro una idea sin pensarlo mucho... ¿inspect?
>
> https://docs.python.org/2/library/inspect.html#retrieving-source-code
>
> El 1 de abril de 2016, 0:52, Lucas Liendo <mindmaster en gmail.com
> <javascript:_e(%7B%7D,'cvml','mindmaster en gmail.com');>> escribió:
>
>> Buenas ! Les queria hacer un consulta un poco rebuscada (tiene una
>> justificacion esta complicacion). Supongamos que tenemos un formulario :
>>
>> class CustomForm(forms.Form):
>>     name = forms.CharField()
>>     last_name = forms.CharField()
>>     ....
>>
>> La consulta que queria compartir con Uds es la siguiente. Supongamos que
>> necesitamos darle al usuario de nuestra aplicacion la habilidad de diseniar
>> formularios, es decir que nuestro formulario no estaria predefinido de
>> antemano (asumo que hay alguna ui en el navegador que me deja elegir el
>> nombre del campo y su tipo). Hasta aca sin problemas porque mi controlador
>> podria usar un FormBuilder como el siguiente que se encarga de construir
>> formularios de forma arbitraria (nos devuelve una clase que hereda de Form)
>> asi que en principio podria crear formularios de forma arbitraria :
>>
>> class FormBuilder(object):
>>     def __init__(self, class_name):
>>         self.Class = type(class_name, (forms.Form,), {})
>>         self.fields = []
>>
>>     def add_fields(self, fields):
>>         self.fields.extend(fields)
>>         return self
>>
>>     def build(self):
>>         [setattr(self.Class, field_name, FieldClass(*args, **kwargs)) for
>> field_name, FieldClass, args, kwargs in self.fields]
>>         return self.Class
>>
>> Por ejemplo si quisiera construir el formulario del ejemplo inicial
>> podriamos usar el FormBuilder asi (ojo que este codigo y el de arriba son
>> solo ideas, pueden tener errores) :
>>
>> CustomForm = FormBuilder('CustomForm').add_fields([
>>     ('name', CharField, (), {}),
>>     ('last_name', CharField, (), {}),
>> ]).build()
>>
>> En algun momento, es necesario guardar el formulario para luego poder
>> renderearlo. Mi duda viene justamente por este lado. Me gustaria poder
>> serializar por ejemplo la clase CustomForm (posiblemente a un JSON, aclaro
>> que necesito serializar la clase y NO una instancia de la misma), guardar
>> este JSON y luego dinamicamente ir regenerando cada uno de los formularios
>> que el usuario creo desde un controlador para finalmente renderealos a una
>> vista. Estuve buscando un poco acerca de esto y no pude encontrar mucha
>> informacion. Alguien alguna vez necesito realizar algo similar ? No tengo
>> basta experiencia en Django, pero si tuviera que hacer esta serializacion
>> manualmente creo que se tornaria (creo) compleja...
>>
>> Por ahi la forma en que estoy pensando como resolver este problema no es
>> la mas adecuada, pero por el momento es lo unico que se me ocurrio.
>>
>> Desde ya muchisimas gracias !
>>
>>
>> --
>>
>> Saludos,
>> Lucas.
>>
>> Radar : http://radar-monitoring.readthedocs.org/en/latest/index.html
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> <javascript:_e(%7B%7D,'cvml','pyar en python.org.ar');>
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> Daniel Malisani
>


-- 

Saludos,
Lucas.

Radar : http://radar-monitoring.readthedocs.org/en/latest/index.html
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160403/2d702942/attachment.html>


Más información sobre la lista de distribución pyar