[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