Объект 'SafeString' не имеет атрибута 'total_seconds'

Я пишу пользовательские шаблонные теги в django. Теперь объясню вкратце. Моя конечная цель - иметь в шаблоне поле длительности в виде часов и минут. На данный момент у меня есть поле длительности, которое предоставляет также секунды, которые я не заинтересован показывать. Поэтому цель - 1 час = 01:00, но на данный момент у меня 01:00:00. Я написал эту функцию, которая работает, когда я использую ее в моих представлениях, но мне нужно также использовать ее внутри шаблона django.

custom_tags.py

from django import template
register = template.Library()
@register.simple_tag

    def duration(td):
        total_seconds = int(td.total_seconds())
        hours = total_seconds // 3600
        minutes = (total_seconds % 3600) // 60
        if minutes < 1:
            minutes = '00'
        elif minutes < 2:
            minutes = '01'
        elif minutes < 3:
            minutes = '02'
        elif minutes < 4:
            minutes = '03'
        elif minutes < 5:
            minutes = '04'
        elif minutes < 6:
            minutes = '05'
        elif minutes < 7:
            minutes = '06'
        elif minutes < 8:
            minutes = '07'
        elif minutes < 9:
            minutes = '08'
        elif minutes < 10:
            minutes = '09'
        return '{}:{}'.format(hours, minutes)

шаблон

<td>
 {% if mix.mission.duration_dual is not None %} <strong>{% duration 'mix.mission.duration_dual' %}</strong>{% endif %}
  <div>{% if mix.log_entry.eet is not None and mix.log_entry.solo_flight == False %} {{mix.log_entry.eet|time:'G:i'}}  {% endif %}</div>
</td>

Виды и модели в этом случае довольно бесполезны, потому что все работает нормально, мне просто нужно понять, есть ли способ сделать так, чтобы поле времени отображалось правильно и в этом случае. Ошибка у меня следующая:

'SafeString' object has no attribute 'total_seconds'

Traceback:

Заранее большое спасибо за помощь

Это потому, что td - это строка, а не timedelta. Это можно исправить, убрав кавычки из тега следующим образом

 <td>
 {% if mix.mission.duration_dual is not None %}   
 <strong>{% duration mix.mission.duration_dual 
 %}</strong>{% endif %}
 <div>{% if mix.log_entry.eet is not None and 
 mix.log_entry.solo_flight == False %} 
 {{mix.log_entry.eet|time:'G:i'}}  {% endif %}. 
 </div>
 </td>
Вернуться на верх