Foros del Web » Programando para Internet » Python »

Formularios de Edicion en Django

Estas en el tema de Formularios de Edicion en Django en el foro de Python en Foros del Web. Buenas tardes, antes que nada muchas gracias, mi pregunta es sencilla, es sobre el Sr. Django, soy nuevo trabajando con el. y me a dado ...
  #1 (permalink)  
Antiguo 01/05/2011, 16:00
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Pregunta

Buenas tardes, antes que nada muchas gracias, mi pregunta es sencilla, es sobre el Sr. Django, soy nuevo trabajando con el. y me a dado cierto problemas. me gustaria saber si el tiene un metodo o funcion para crear formularios de edicion, tal como lo hace el en el "admin de django" pero para trabajarlo con un formulario propio. gracias!!!!!

Última edición por AlvaroG; 03/05/2011 a las 09:33
  #2 (permalink)  
Antiguo 01/05/2011, 16:03
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Formularios de Edicion en Django

Capitulo 7 del libro de django: Formularios
  #3 (permalink)  
Antiguo 01/05/2011, 22:55
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Formularios de Edicion en Django

Bueh.... es que en ese capitulo hablan de como trabajar un formulario normal. o no se si me explico. lo que yo quiero es traer un formulario con los datos ya cargados!!!!!!! y no consigo un ejmp.... me parece que es algo que por lo menos en php es sencillo, pero que aqui..... si tengo un formulario que extiende de modelForm.... y en la template lo unico que se hace es mandarlo a imprimir., no se como especificar que me precargue los datos de la Bd!!!!
  #4 (permalink)  
Antiguo 02/05/2011, 06:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 9 meses
Puntos: 27
Respuesta: Formularios de Edicion en Django

con
Código:
MyForm(instance=instancia)
e instancia ha de ser la fila referida

Código:
MyFormset(queryset=elementos)
Y si es un formset queryset recibe la query para seleccionar los elementos a trabajar.


Saludos.
  #5 (permalink)  
Antiguo 02/05/2011, 07:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Formularios de Edicion en Django

Cita:
Iniciado por rjulio21 Ver Mensaje
Bueh.... es que en ese capitulo hablan de como trabajar un formulario normal. o no se si me explico. lo que yo quiero es traer un formulario con los datos ya cargados!!!!!!! y no consigo un ejmp.... me parece que es algo que por lo menos en php es sencillo, pero que aqui..... si tengo un formulario que extiende de modelForm.... y en la template lo unico que se hace es mandarlo a imprimir., no se como especificar que me precargue los datos de la Bd!!!!
¿Te refieres a un "post/get request"?
  #6 (permalink)  
Antiguo 02/05/2011, 09:34
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
Respuesta: Formularios de Edicion en Django

Si por "post/get request" te refieres a un formulario de modificacion de datos! si. a eso me refiero.

refreegrata ese codigo del instance iria en el modelForm????? Gracias...!
  #7 (permalink)  
Antiguo 02/05/2011, 10:16
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 9 meses
Puntos: 27
Respuesta: Formularios de Edicion en Django

al instanciar la clase del formulario, es decir, al crear un objeto de tipo formulario, generalmente en la vista. Es un parámetro que se da. Algo como:

Código:
# En la vista
from forms import MyForm
...
...
def MyView(request, ....):
   formulario = MyForm(instance=instancia)
Saludos.
  #8 (permalink)  
Antiguo 02/05/2011, 15:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Formularios de Edicion en Django

Cita:
Iniciado por rjulio21 Ver Mensaje
Si por "post/get request" te refieres a un formulario de modificacion de datos! si. a eso me refiero.

refreegrata ese codigo del instance iria en el modelForm????? Gracias...!
En ese caso, eso se hace desde la vista.
¿Estas seguro que entiendes el modelo MTV de django?
  #9 (permalink)  
Antiguo 02/05/2011, 21:55
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 2 meses
Puntos: 16
De acuerdo Respuesta: Formularios de Edicion en Django

Si. Gracias. Me funciono!!!!!!!!!, Gracias!!! eso era lo que necesitaba
  #10 (permalink)  
Antiguo 21/03/2012, 22:46
Avatar de oswalgogra  
Fecha de Ingreso: septiembre-2007
Ubicación: En algún lugar del territorio Colombiano
Mensajes: 140
Antigüedad: 16 años, 7 meses
Puntos: 5
Información Respuesta: Formularios de Edicion en Django

Hola, yo tengo problemas para grabar información de lo recibido desde un formulario generado a partir de un modelForm.

Siempre de aparece el error de que los datos recibidos en request.POST no son válidos.

Alguien sabe si hay algún ejemplo en el que muestren cómo se deben recibir los datos generados? la plantilla de formulario debe estar construida de una forma especial?

Este es el código que tengo:

Código Python:
Ver original
  1. # este método genera el formulario en la plantilla
  2. def formulario(request):
  3.     comercioFormSet = modelformset_factory(Comercio, exclude=('usuario'))
  4.     form = comercioFormSet(queryset=Comercio.objects.none())
  5.     bloqueFormulario = render_to_string('comercios/formulario.html',{'formulario':form}, context_instance=RequestContext(request));
  6.     return salida_final(bloqueFormulario)
  7.  
  8. # esta es la clase del modelForm
  9. class formComercio(ModelForm):
  10.     class Meta:
  11.         model = Comercio
  12.         exclude = ('usuario',)
  13.  
  14. # este método recibe la petición para grabar la información. Aquí me aparece el error.
  15. def guardar(request):
  16.     inst = Comercio
  17.     frmComercio = formComercio(request.POST, instance=inst)
  18.     nuevoComercio = frmComercio.save(commit=False)

Gracias de antemano!

Actualización:
Ya lo solucioné! tuve que crear un diccionario con los datos que vienen del POST
Código Python:
Ver original
  1. datos = {'nombre': request.POST['miform_nombre'],
  2. 'pais': request.POST['miform_pais'],
  3. 'departamento': request.POST['miform_departamento'],
  4. # y así sucesivamente con todos los datos, menos con el usuario, que está excluído del modelo del formulario.
  5. }
  6. formulario = formComercio(datos)
  7. nuevoComercio = formulario .save(commit=False)
  8. nuevoComercio.usuario = request.user.id
  9. nuevoComercio.save()
  10. # se guardan las relaciones de ese modelo
  11. nuevoComercio.save_m2m()
__________________
Oswaldo: El que gobierna con el poder de Dios.

Última edición por oswalgogra; 07/06/2012 a las 10:47 Razón: Agregué el código de lo que estoy haciendo.

Etiquetas: django, formulario
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 23:30.