Получение ошибки "decoding to str: нужен байтоподобный объект, найден int" при попытке вернуть id и значение поля в моделях django

модель №1

class Add_Job(models.Model):
    
    job_name=models.CharField(max_length=254)
    client=models.ForeignKey(Client,on_delete=CASCADE,related_name='client')
    #client=models.ManyToManyField(Client)
    project=models.ForeignKey(Project,on_delete=CASCADE,related_name='project')
    #project=models.ManyToManyField(Project)
    user=models.ForeignKey(Users,on_delete=CASCADE)
    Hours=models.TimeField(null=True)
    start_Date = models.DateTimeField(max_length=10)
    end_Date=models.DateTimeField(max_length=10)
    
    def __str__(self):
        return str(self.id, self.job_name)

модель №2

class Add_Timelog(models.Model):
    
    
    project=models.ManyToManyField(Project)
    client=models.ManyToManyField(Client)
    Job=models.ManyToManyField(Add_Job)
    #Date = models.DateField(max_length=100 ,auto_now_add=True,editable=True)
    Date= models.DateField(default = datetime.date.today)
    Hours=models.TimeField(null=True)
    
    def __str__(self):
        return str(self.Date)

Пока я пытался вернуть 'id' и 'job_name' из модели 'Add_Job', они отражаются в таблице базы данных. Но модель 'Add_timelog' получает ошибку "TypeError at /api/Add_Timelog/ decoding to str: need a bytes-like object, int found". Не знаю, почему возникает ошибка. Пожалуйста, помогите решить эту проблему.

Похоже, что проблема в модели Add_Job, а не Add_Timelog. В методе str вы пытаетесь преобразовать id и job_name в str, но при этом возникает TypeError. Попробуйте изменить return str(self.id, self.job_name) на return '{} {}'.format(str(self.id), self.job_name), это позволит преобразовать id объекта в строку и поместить ее в первый {}, а имя_работы, которое уже является строкой, во второй {}

Вернуться на верх