I have the following models:
class perfil(models.Model):
usuario = models.OneToOneField(User, on_delete=models.CASCADE)
carrera = models.TextField()
promocion = models.TextField()
telefono = models.TextField(max_length=11)
fecha_nacimiento = models.DateField()
imagen = models.ImageField(null=True)
area = models.ManyToManyField(area_conocimiento)
class publicacion(models.Model):
usuario = models.ForeignKey(User, editable=True, related_name='publicacion', on_delete=models.CASCADE)
canal = models.ForeignKey(canal, editable=True, related_name='canal', on_delete=models.CASCADE)
contenido = models.TextField()
imagen = models.ImageField(null=True)
fecha = models.DateTimeField(auto_now_add=True)
tipo = models.TextField()
I need to show all posts made by users whose promotion is equal to that of a certain user (in this case 56), the following query works for me without problems in the database:
SELECT redsocial_publicacion.usuario_id, redsocial_publicacion.contenido, redsocial_publicacion.canal
FROM redsocial_perfil, redsocial_publicacion, auth_user
WHERE redsocial_publicacion.canal = 'promo'
AND redsocial_publicacion.usuario_id = redsocial_perfil.usuario_id
AND redsocial_perfil.promocion = '56'
AND redsocial_publicacion.usuario_id = auth_user.id
Try doing the following in Django but without result:
publicaciones_promo = publicacion.objects.filter(tipo="publico",canal='promo', perfil__promocion=promo_usuario)