Foros del Web » Programando para Internet » Python »

Widgets a un Formulario

Estas en el tema de Widgets a un Formulario en el foro de Python en Foros del Web. Buenas Tardes. Este tema es para ver si pueden aclararme una duda que tengo con respecto a los formularios que extienden de un modelo. Es ...
  #1 (permalink)  
Antiguo 23/06/2011, 12:26
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 9 meses
Puntos: 16
Widgets a un Formulario

Buenas Tardes. Este tema es para ver si pueden aclararme una duda que tengo con respecto a los formularios que extienden de un modelo.
Es por lo siguiente. Tengo un formulario que extiende de la clase ModelForm. para que me lo cree segun un modelo, este formulario tiene campos de fecha y deseo agregarle un widgets de fecha hecho en javaScript. El detalle esta en que no estoy muy seguro de como hacerlo. pues, al poner en la template {{ form.as_table }} o campo a campo iwal no tengo como decirle a un campo especifico que me llame una funcion javascript.
Tambien lei algo sobre la class Media dentro del form. pero no estoy muy seguro de como funciona. ademas, que no se como se le pasarian parametros a la funcion javascript?????? si pueden echarme una mano.... graciasss.!
  #2 (permalink)  
Antiguo 24/06/2011, 15:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Widgets a un Formulario

¿De qué sistema estamos hablando? parece Django, pero no especificas.
Si es django, la misma pregunta está contestada por acá, con buenos ejemplos de código: http://stackoverflow.com/questions/3...in-custom-form


Saludos.
  #3 (permalink)  
Antiguo 24/06/2011, 17:46
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 9 meses
Puntos: 16
Respuesta: Widgets a un Formulario

Si es django. Pero ese ejemplo es para importar el widget del admin. no? yo quiero es ponerle uno personalizado o codigos propios. como referenciar a un .js mio??
  #4 (permalink)  
Antiguo 25/06/2011, 14:05
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Widgets a un Formulario

Sí, esa es la pregunta inicial, pero si lees el tema podés ver que en realidad la solución es crear tu propio campo, heredando del campo TextField, y cambiando lo necesario. Hay un ejemplo complejo aquí: http://copiesofcopies.org/webl/2010/...et-for-django/

En fin, leyendo sobre el tema me encuentro con que lo más sencillo quizás sea ponerle un ID a tu campo de fecha (en realidad ni siquiera eso es necesario, ya que los campos tienen un ID de forma predeterminada), y luego indicarle a tu formulario que se necesita tal o cual archivo de javascript para que se ejecute. Aquí se explica cómo: https://docs.djangoproject.com/en/de...s/forms/media/

Una vez que haces eso, es bien simple crear una función de javascript que agregue el selector de fecha junto al campo cuyo id corresponda con el de tu campo de fecha. En definitiva termina siendo algo más dependiente de Javascript que de Django.


Saludos.
  #5 (permalink)  
Antiguo 06/07/2011, 13:10
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 9 meses
Puntos: 16
Respuesta: Widgets a un Formulario

ok. No habia retomado este tema. Tengo lo siguiente:
Código Python:
Ver original
  1. class tipoCalendario(forms.TextInput):
  2.  
  3.         class Media:
  4.  
  5.             css = {
  6.  
  7.                 'all':('estilo.css',)}
  8.  
  9.             js = ('/media/js/popcalendar.js', 'js/validar.js')
  10.  
  11.  
  12.  
  13. class fechas(forms.Form):
  14.  
  15.     fecha1= forms.DateField(widget=tipoCalendario())
  16.  
  17.     fecha2= forms.DateField(label="fecha 2")
Todo en el mismo archivo de formularios.py (luego en lo que entienda bien como usarlo, si es necesario pasare lo de los widgets a otro). Lo segui guiandome de la documentacion de django que me mostro AlvaroG. Sin embargo Me muestra el mismo campo de texto... No se si será un error en la llamada a los archivos ccs y js, los cuales estan en la carpeta media_root que uso en el settings. y por eso solo les pongo el "js/..." No se si ese será el error o.... a ver si pueden ayudarme a ver. tambien lo defini asi directo:
Código Python:
Ver original
  1. class fechas(forms.Form):
  2.  
  3.         fecha1= widget=tipoCalendario()
pero alli no me muestra ni el campo....:S que complejo. jaja. Gracias de antemano.
  #6 (permalink)  
Antiguo 06/07/2011, 14:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Widgets a un Formulario

Si tenés dudas de que el archivo esté siendo cargado correctamente, fijate con cualquier navegador (todos hoy en día incluyen una herramienta adecuada) si se está haciendo una petición correcta.
Además, en el servidor de desarrollo podés ver si la petición es correcta. Por último, podés probar agregando manualmente a la plantilla los archivos necesarios.

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.