Задать вопрос
Acaweb
@Acaweb
Начинающий Вэб-разработчик

Как записать данные в DurationField в Django 2.2?

Добрый день

Есть модель
class Calls(models.Model):
    time = models.DurationField(null=True, blank=True, verbose_name='Продолжительность')

Есть файл .xls из него берем Ячейку со значением:
00:20:15
Далее создаем новую запись:
duration = row[2] #Строка из файла
Calls.objects.create( time = duration)

Получаю ошибку:
'str' object has no attribute 'days'
Exception Location: ...\django\utils\duration.py in duration_microseconds, line 44

Пробовал строку перевести в:
'datetime.datetime' object
'float' object

Но всё равно они не имеют attribute 'days'
Не могу понять как заполнить поле DurationField, потому что если делать через Админ панель, то это поле принимает как int, так и str
  • Вопрос задан
  • 1276 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Acaweb
@Acaweb Автор вопроса
Начинающий Вэб-разработчик
Сам решил
import datetime as datetime_class # забыл добавить в ответ

duration = datetime.strptime(duration, "%H:%M:%S")
x_duration =datetime_class.timedelta(hours=duration.hour, minutes=duration.minute, seconds=duration.second).total_seconds()	
duration = timedelta(seconds = x_duration)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
timedelta ему надо, не строку, не дату, не число, а timedelta
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы