我在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