Нужна помощь в возврате поля Date в моделях Django
models.py
class Add_Timelog(models.Model):
project=models.ForeignKey(Project,on_delete=CASCADE,related_name='project')
project=models.ManyToManyField(Project)
client=models.ForeignKey(Client,on_delete=CASCADE,related_name='client')
client=models.ManyToManyField(Client)
Job=models.ForeignKey(Add_Job,on_delete=CASCADE,related_name='Job')
Job=models.ManyToManyField(Add_Job)
Date = models.DateTimeField(max_length=10)
Hours=models.TimeField(null=True)
def __str__(self):
return self.Date
TypeError at /api/Add_Timelog/
str возвращается нестрока (тип int)
Метод запроса: GET
URL запроса: http://127.0.0.1:8000/api/Add_Timelog/.
Версия Django: 2.2.12
Тип исключения: TypeError
Значение исключения:
str возвращается не строка (тип int)
Это ошибка, которую я получил. Решение, которого я ожидал - это получить дату, введенную мной в базу данных, и получить значение как дату (целое число), а не как строку
__str__ должен возвращать string, а вы возвращаете DateTimeField значение.
Преобразуйте это значение в string в вашей Add_Timelog модели как
def __str__(self):
return str(self.Date)
Подробнее str[Django-doc]
Я понимаю проблему согласно вашему вопросу
первая вещь str() возвращает всегда строку, так что переведите вашу дату в строку, тогда она будет работать.
def __str__(self):
return str(self.Date)
А это не работает из-за создания вашей модели, так как вы не можете использовать одновременно foregin key и manytomanyfield
Без вашей модели, если вы создадите простую модель, чтобы она работала, посмотрите следующее:
class Add_Timelog(models.Model):
name = models.CharField(max_length=200)
hours = models.TimeField(null=True)
Date = models.DateTimeField(max_length=10)
def __str__(self):
return str(self.Date)
Выводит дату и время одновременно, преобразуя их в строку в панели администратора