[pyar] OneToOneField Construcción de modelo en Django?

Diego Uribe Gamez diego.uribe.gamez en gmail.com
Mar Dic 6 12:23:57 ART 2011


si es lo que necesito, voy a probar y si tengo alguna duda te comento.

Gracias.

El 5 de diciembre de 2011 20:29, Emilio <emilioramirez04 en gmail.com>escribió:

> 2011/12/5 Diego Uribe Gamez <diego.uribe.gamez en gmail.com>
>
>> Buenos días
>>
>> Estoy haciendo un proyecto de base de datos y campos relacionados en
>> Django, estoy mirando las clases de relaciones y no logro configurar la
>> clase OneToOneField para una relación uno a uno de un conductor con un
>> carro, la idea es relacionar al conductor con la placa del carro a
>> conducir, no me sale error al intentar procesar la base de datos, pero no
>> se si la relación queda bien hecha de esta manera, la idea es que cuando
>> cree un conductor yo pueda buscar una placa para asignarle.
>>
>> La pregunta es, en este modelo como relaciono uno a uno un conductor con
>> un carro? esta bien hecha la lógica(*)?
>>
>> class Carro(models.Model):
>>     id_unidad = models.IntegerField(max_length=16)
>>     marca = models.CharField(max_length=20)
>>     modelo = models.CharField(max_length=20)
>>     placa = models.CharField(max_length=6) *
>>
>> class Conductor(models.Model):
>>     nombre_conductor = models.CharFieldField(max_length=30)
>>     id_cedula = models.IntegerField max_length=20)
>>     numero_celular = models.IntegerField (blank=True, null=True)
>>     placa = models.OneToOneField(Carro) *
>>
>>
>> Otra pregunta aparte que tengo es cuando se crea una app el modelo solo
>> afecta a esa app en especial? si es verdad me gustaría saber como usar un
>> modelo que englobe a todas las apps? lo hago con un import y colocando el
>> modelo en la raíz?
>>
>> Gracias.
>>
>> --
>>  *Diego Alonso Uribe Gamez*
>> ------------------------------
>>
>> *Desarrollador web*
>>
>> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>>
>> Google+: http://gplus.to/diegoug
>> ------------------------------
>>
>>
>>
>> _______________________________________________
>> pyar mailing list 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
>>
>
> A ver si entendi, vos tenes carros, cada carro tiene una placa. Tenes
> conductores donde cada conductor tiene UN carro (por ende una placa)
> asignados no? Entonces creo que tu modelo esta bien (hice pequeñas
> modificaciones):
>
>
> class Carro(models.Model):
>
> id_unidad = models.IntegerField(max_length=16)
>
> marca = models.CharField(max_length=20)
>
> modelo = models.CharField(max_length=20)
>
> placa = models.CharField(max_length=6)
>
>
>
> #este metodo es para que en el admin no salga object Carro, sino
>
> #"Carro: XXXX" donde XXXX es el contenido de la variable placa como
>
> #querias.
>
> def __unicode__(self):
>
> return "Carro: {0}".format(self.placa)
>
>
>
> class Conductor(models.Model):
>
> nombre_conductor = models.CharFieldField(max_length=30)
>
> id_cedula = models.IntegerField max_length=20)
>
> numero_celular = models.IntegerField (blank=True, null=True)
>
>
>
> #esta variable apunta a un Carro no a una placa, por eso el nombre
>
> #deberia ser algo asociado al carro para mas claridad ;)
>
> carro = models.OneToOneField(Carro)
>
>
> Si lo que necesitas es que un conductor tenga muchos carros (por ende
> muchas placas) asociadas, el carro debería tener un foreingkey a un
> conductor. Con esto cada carro esta asignado a solo un conductor, pero el
> conductor puede tener asociados muchos carros. Te dejo como seria el modelo:
>
>
>
> class Carro(models.Model):
>     id_unidad = models.IntegerField(max_length=16)
>     marca = models.CharField(max_length=20)
>     modelo = models.CharField(max_length=20)
>     placa = models.CharField(max_length=6)
>     #Cada carro se asocia con un solo conductor, pero el conductor puede
> asociarse con
>     #muchos carros.
>     conductor = models.ForeingKey(Conductor)
>
>     def __unicode__(self):
>         print("Carro: {0}".format(self.placa)
>
>
> class Conductor(models.Model):
>      nombre_conductor = models.CharFieldField(max_length=30)
>     id_cedula = models.IntegerField max_length=20)
>     numero_celular = models.IntegerField (blank=True, null=True)
>
> Es esto lo que necesitas?
>
>
> --
> Emilio H. Ramirez
>
>
>
> _______________________________________________
> pyar mailing list 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
>



-- 
 *Diego Alonso Uribe Gamez*
------------------------------

*Desarrollador web*

Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>

Google+: http://gplus.to/diegoug
------------------------------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20111206/6264295b/attachment.html>


More information about the pyar mailing list