Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] One To One Field en model

Estas en el tema de One To One Field en model en el foro de Python en Foros del Web. Buenas tardes, tengo lo siguiente, un campo para introducir un numero de folio en una tabla en el modelo, y se me recomendo crear un ...
  #1 (permalink)  
Antiguo 15/09/2014, 18:09
 
Fecha de Ingreso: febrero-2014
Ubicación: Hermosillo, Sonora
Mensajes: 86
Antigüedad: 10 años, 10 meses
Puntos: 0
One To One Field en model

Buenas tardes, tengo lo siguiente, un campo para introducir un numero de folio en una tabla en el modelo, y se me recomendo crear un campo en otra tabla de tipo one to one field, para poder relacionarlos, pero no entiendo como es que esto funciona.

Ya que cuento con un campo en una plantilla, el cual al capturarse debe ir guardando la hora y segun esto con el campo one to one field, lo que se haria es ir actualizando la hora guardada en ese campo, si alguien pudiera explicarme esta idea, del one to one field o mas bien en que consiste.
  #2 (permalink)  
Antiguo 15/09/2014, 18:29
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: One To One Field en model

OneToOneField es básicamente una FK a una PK, donde la FK es unique. Y la relación inversa en lugar de obtener un queryset obtienes nada mas un objeto.

https://docs.djangoproject.com/en/de...es/one_to_one/

OneToOneField es una opción para añadir campos a tu modelo, sin alterar la tabla actual. Pero tiene un detalle, ademas de los join extras que tenga que hacer para traer esos campos, tienes que primero guardar una instancia de tu modelo padre y luego guardar los datos de la instancia hijo. Lo cual resulta en formularios y consultas mas complejas.

Otra solución es usar migración ya sea con un thrid party como South o con las migraciones que trae django 1.7 en adelante. Añades con esto puedes hacer cambios en la db fácilmente. Pero tiene una curva de aprendizaje no del todo suave si no entiendes conceptos como control de versiones.

Por el lado del OneToOneField, solamente al guardar tu instancia padre, creas una instancia hija, le asignas el padre y el folio. Y lo guardas todo junto dentro de una transacción.

Para saber mas de relaciones uno a uno en django lee la documentación https://docs.djangoproject.com/en/1....es/one_to_one/

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 09:00.