1

我有 CharField 模型:

absolute_path_to_file = models.CharField(max_length=255)

我想以这个文件的模板大小显示。怎么做?筛选?

{{ object.absolute_path_to_file|<????>size</????> }}
4

3 回答 3

8

这是使用“自定义过滤器”方式的一种方式:

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)

该代码应该在您的 django 应用程序中的“templatetags”文件夹中,例如在名为“utils.py”的 python 模块中。然后,要在模板中使用过滤器,这是一个示例:

{% load utils %}
{{ object.absolute_path_to_file|filesize }}

同样,您可以像这样对过滤器进行动画处理:

{{ object.absolute_path_to_file|filesize|filesizeformat }}
于 2013-11-09T22:43:28.653 回答
5

改用FileField,然后你可以做

{{ object.absolute_path_to_file.size }}
于 2012-02-01T11:17:14.813 回答
1

如果您不能使用FileField,那么您可以创建一个自定义过滤器,该过滤器接受参数并尝试使用标准 Python os.path模块获取该文件的大小。

于 2012-02-01T11:42:05.800 回答