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

Diego Uribe Gamez diego.uribe.gamez en gmail.com
Mar Dic 6 20:01:27 ART 2011


El problema es de encoding, voy a cambiar el hilo.

Gracias.

El 6 de diciembre de 2011 16:25, Diego Uribe Gamez <
diego.uribe.gamez en gmail.com> escribió:

> mira lo que me llego en consola después de ver el cambio:
>
> [06/Dec/2011 15:13:37] "GET /admin/gprs/carro/ HTTP/1.1" 200 4161
> [06/Dec/2011 15:13:37] "GET /admin/jsi18n/ HTTP/1.1" 200 2158
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> Carro: wer234
> [06/Dec/2011 15:13:40] "GET /admin/gprs/carro/1/ HTTP/1.1" 500 243400
>
>
> El 6 de diciembre de 2011 16:20, Diego Uribe Gamez <
> diego.uribe.gamez en gmail.com> escribió:
>
> Una placa se compone generalmente en Colombia de tres letras y
>> tres números, en casos especiales son dos letras y 4 números, la idea es
>> que desde el admin se pueda crear un Conductor y colocarle un Carro,
>> buscando por su placa.
>>
>> Estoy teniendo problemas con el unicode y me sigue saliendo object Carro:
>>
>> class Carro(models.Model):
>>     placa = models.CharField(max_length=7)
>>     marca = models.CharField(max_length=10)
>>     modelo = models.CharField(max_length=10)
>>     tipo = models.CharField(max_length=10)
>>     color = models.CharField(max_length=10)
>>
>>     def __unicode__(self):
>>         print "Vehiculo: {0}".format(self.placa)
>>
>> class Conductor(models.Model):
>>     vehiculos = models.OneToOneField(Vehiculo)
>>
>>
>> ---------------------------------------------------------------------------------------
>> en HTTP:
>>
>> aught TypeError while rendering: coercing to Unicode: need string or
>> buffer, NoneType found
>>
>>
>> ---------------------------------------------------------------------------------------
>> en HTTP usando:
>>
>> def __str__(self):
>>         print "Carro: {0}".format(self.placa)
>>
>> sale:
>>
>> __str__ returned non-string (type NoneType)
>>
>> Caught TypeError while rendering: __str__ returned non-string (type
>> NoneType)
>>
>> Gracias.
>>
>> El 6 de diciembre de 2011 10:23, Diego Uribe Gamez <
>> diego.uribe.gamez en gmail.com> escribió:
>>
>> 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
>>> ------------------------------
>>>
>>>
>>>
>>
>>
>> --
>>  *Diego Alonso Uribe Gamez*
>> ------------------------------
>>
>> *Desarrollador web*
>>
>> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>>
>> Google+: http://gplus.to/diegoug
>> ------------------------------
>>
>>
>>
>
>
> --
>  *Diego Alonso Uribe Gamez*
> ------------------------------
>
> *Desarrollador web*
>
> Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>
>
> Google+: http://gplus.to/diegoug
> ------------------------------
>
>
>


-- 
 *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/bc98e260/attachment.html>


More information about the pyar mailing list