Получение ошибки "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 объекта в строку и поместить ее в первый {}, а имя_работы, которое уже является строкой, во второй {}