我有CharField模型:
absolute_path_to_file = models.CharField(max_length=255)
我想显示此文件的模板大小。怎么做?过滤
{{ object.absolute_path_to_file|<????>size</????> }}
答案 0 :(得分:7)
这是一种使用“自定义过滤器”的方式:
import os
from django import template
register = template.Library()
@register.filter
def filesize(value):
"""Returns the filesize of the filename given in value"""
return os.path.getsize(value)
该代码应该位于文件夹“templatetags”中的django应用程序中,例如在名为“utils.py”的python模块中。然后,要在模板中使用过滤器,这是一个示例:
{% load utils %}
{{ object.absolute_path_to_file|filesize }}
同样,您可以像这样对过滤器进行补充:
{{ object.absolute_path_to_file|filesize|filesizeformat }}
答案 1 :(得分:4)
改为使用FileField,然后你可以
{{ object.absolute_path_to_file.size }}
答案 2 :(得分:1)
如果您不能使用FileField
,那么您可以创建一个custom filter来获取参数并尝试使用标准Python os.path模块获取该文件的大小。< / p>