Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/09/2014, 18:29
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 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/