我在Django中有一个字段,即models.CharField
。Django显示charfield字段,表示分钟为hh小时,mm分钟
它存储电影的持续时间。
对于电影,90分钟持续,当我把它从一个模板,像
{{ movie.duration }}
我想拿到1小时30分钟,而不是90分钟。
我在Django中有一个字段,即models.CharField
。Django显示charfield字段,表示分钟为hh小时,mm分钟
它存储电影的持续时间。
对于电影,90分钟持续,当我把它从一个模板,像
{{ movie.duration }}
我想拿到1小时30分钟,而不是90分钟。
我喜欢DURATION_FORMATTED功能的想法,但我会在你的模板,你可以推荐一个模板过滤器与模型
from django import template
register = template.Library()
@register.filter('duration_format')
def duration_format(value):
value = int(value)
h = 'hour'
m = 'minute'
hours = int(value/60)
minutes = value%60
if hours <> 1:
h += 's'
if minutes <> 1:
m += 's'
return '%s %s , %s %s' % (hours, h, minutes, m)
然后(假设过滤器是像my_template_tags.py)
{% load my_template_tags %}
{% block content %}
<p>{{ film.title }} - {{ film.duration|duration_format }}</p>
{% endblock %}
这样做更灵活。使用模板过滤器,它可以用于任何模型。 – edu222
您应该只使用models.TimeField
而不是CharField
。
from datetime import time
def num_to_time(snum):
num = int(snum)
ttime = (num/60, num % 60)
return time.strftime('%k h %M s')[1:]
#[1:] just because %k produces one leading space
:
如果你真的需要一种方法来弦号码转换成一个字符串时间(装饰或其他地方),你可以(在)使用
time
类型及其强大methods之一,它做数据如何存储?它实际上是数据库中的“90分钟”还是“90”? – voithos它的存储方式与“90”相同 – edu222