Нужна помощь в возврате поля 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)

Выводит дату и время одновременно, преобразуя их в строку в панели администратора

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