Python Django模板-使用变量的正确方法
我刚刚开始使用Django,我有以下场景: 我有一个model类Python Django模板-使用变量的正确方法,python,django,templates,variables,video,Python,Django,Templates,Variables,Video,我刚刚开始使用Django,我有以下场景: 我有一个model类Video,我正在通过helper方法计算它的长度,它不是一个属性(至少目前是这样) 所以我在视频类中使用了一个方法,我们可以在视频对象上调用这个方法,比如 length = video_obj.video_length() 以秒为单位计算长度 我的问题是,当在页面上列出一组视频时(我只是在模板中迭代视频,没有向模板传递视频对象),如何以minutes:seconds格式显示长度 我想到了以下几点: 在该页的控制器中调用vide
Video
,我正在通过helper方法计算它的长度,它不是一个属性(至少目前是这样)
所以我在视频类中使用了一个方法,我们可以在视频对象上调用这个方法,比如
length = video_obj.video_length()
以秒为单位计算长度
我的问题是,当在页面上列出一组视频时(我只是在模板中迭代视频,没有向模板传递视频对象),如何以minutes:seconds
格式显示长度
我想到了以下几点:
- 在该页的控制器中调用video_length()函数,然后将值作为自定义变量传递,但这不是特定于视频的(我不会在控制器中迭代视频)
- 最后,请将其添加为属性
import datetime
def formatted_length(value):
"""
Formats the time in seconds to time in hours:minutes:seconds
"""
return str(datetime.timedelta(seconds=value))
然后你可以像这样在模板中使用它
{{ video_obj.video_length|formatted_length }}
您可以在方法上方添加
@property
装饰器,并在模板中访问video.video\u length
如果它以秒的整数返回,那么您可以轻松创建一个过滤器,将其转换为分:秒。谢谢您的回答。我将您的两个建议结合起来解决了我的问题!谢谢你的回答。我结合了你的两个建议来解决我的问题!