[pyar] Duda con modelos en Django
Tordek
kedrot en gmail.com
Mie Jul 12 18:43:21 ART 2017
Como te dice ahí: el problema es que le estás pasando un
QuerySet([{id:1}]), pero ForeignKey espera un modelo.
El otro problema es que no sé qué es tu objeto `datos` al que llamás
`datos('id')`; pero fijate que te pasa un QuerySet, y no un id.
Al parametro tareas que pasarle un objeto "Tareas", o indicarle que se
lo estás pasando por id, con `_id` al final del nombre:
rastreo = Rastreos(fechahora=ahora, tarea_id=id_tarea)
2017-07-12 18:00 GMT-03:00 Alan Rizzo <alan.rizzo en gmail.com>:
> Por lo q veo rapidamente e falta instanciar la clase tareas.
>
> El 12 jul. 2017 5:50 PM, "Juan Manuel" <jmdedio en gmail.com> escribió:
>>
>> Hoa a todos:
>>
>> Estoy desarrollando mi primera aplicación de escrapeo con backend en
>> Django (es mi primera vez con Django) y tengo un problema con la claves
>> foraneas. Los modelos son:
>>
>> class Tareas(models.Model):
>> cliente = models.ForeignKey(Clientes, on_delete=models.CASCADE,
>> verbose_name=(u'Id Clentes'))
>> sitio = models.ForeignKey(Sitios, on_delete=models.CASCADE,
>> verbose_name=(u'Id Sitios'))
>> clave = models.ForeignKey(Claves, on_delete=models.CASCADE,
>> verbose_name=(u'Id Claves'))
>> frecrastreo = models.ForeignKey(FrecuenciaRastreos,
>> on_delete=models.CASCADE, verbose_name=(u'Id FrecuenciaRastreos'))
>> descripcion = models.CharField(max_length=200,
>> verbose_name=(u'descripción'))
>> falta = models.DateTimeField(verbose_name=(u'fecha de alta'))
>> fbaja = models.DateTimeField(blank=True, null=True,
>> verbose_name=(u'fecha de baja'))
>>
>> def __str__(self):
>> return self.descripcion
>>
>> class Meta:
>> verbose_name=(u'Tarea')
>> verbose_name_plural=(u'Tareas')
>>
>> class Rastreos(models.Model):
>> fechahora = models.DateTimeField(verbose_name=(u'Fecha hora'))
>> tarea = models.ForeignKey(Tareas, on_delete=models.CASCADE,
>> verbose_name=(u'Id Tareas'))
>>
>> def __str__(self):
>> return self.fechahora
>>
>> class Meta:
>> verbose_name=(u'Rastreo')
>> verbose_name_plural=(u'Rastreos')
>>
>> Es decir, para cada tarea habrá varios rastreos. Tengo entonces; una
>> función que carga los escrapeos pero cuando intento agregar un registro
>>
>> def rastrea(datos):
>> insert_rastreos(strftime("%Y-%m-%d %H:%M:%S"), datos('id'))
>>
>>
>> def insert_rastreos(ahora, id_tarea):
>> rastreo = Rastreos(fechahora=ahora, tarea=id_tarea)
>> rastreo.save()
>>
>> Sale el siguiente error: ValueError: Cannot assign "<QuerySet [{'id':
>> 1}]>": "Rastreos.tarea" must be a "Tareas" instance.
>>
>> ¿Qué estoy haciendo mal?
>>
>> Saludos
>>
>>
>> _______________________________________________
>> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
>> Sitio web: http://www.python.org.ar/
>>
>> Para administrar la lista (o desuscribirse) entrar a
>> http://listas.python.org.ar/listinfo/pyar
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
Más información sobre la lista de distribución pyar