Xohayo
Xohayo

Reputation: 3

Problem working in models rendering admin add page

I tried so many things like .formate and using id explicit in the model now I don't know what to do.

class Horas_medica(models.Model):
   id_boxes = models.ForeignKey(Boxe, on_delete=models.CASCADE)
   id_medico = models.ForeignKey(Medico, on_delete=models.CASCADE)
   id_paciente = models.ForeignKey(Paciente, on_delete=models.CASCADE)
   descripcion = models.TextField()
   diagnostico = models.TextField()
   created_date = models.DateTimeField(
           default=timezone.now)
     
   def __str__(self):
      return str(self.id)

Error in console is:

error TypeError: str returned non-string (type tuple)

Upvotes: 0

Views: 37

Answers (1)

crazychukz
crazychukz

Reputation: 676

class Paciente(models.Model):
    nombre = models.TextField()
    apellidos = models.TextField()
    rut = models.TextField()
    fecha_nacimiento = models.DateField()
    direccion = models.TextField()
    genero = models.ForeignKey(Genero, on_delete=models.CASCADE)
    created_date = models.DateTimeField(
        default=timezone.now)

    def __str__(self):
        return self.rut, self.nombre, self.apellidos


class Medico(models.Model):
    nombre = models.TextField()
    apellidos = models.TextField()
    rut = models.TextField()
    contrasena = models.TextField()
    direccion = models.TextField()
    fecha_nacimiento = models.DateField()
    genero = models.ForeignKey(Genero, on_delete=models.CASCADE)
    created_date = models.DateTimeField(
        default=timezone.now)

    def __str__(self):
        return self.rut, self.nombre, self.apellidos

From your models.py you're returning a tuple on some models where you intend to return a string.

For instance Paciente returns self.rut, self.nombre, self.apellidos which is a tuple. Change to return "%s %s %s" % (self.rut, self.nombre, self.apellidos)

You can also do this for Medico . Change to return "%s %s %s" % (self.rut, self.nombre, self.apellidos)

Upvotes: 1

Related Questions