Python之Django在模板中使用自定义方法

1、在项目文件夹下新增templatetags文件夹并且需要包含“__init__.py”文件

2、在项目设置文件“settings.py”中进行app注册;

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '项目名称',
    '项目名称.templatetags',
]

3、在templatetags新增Python文件,例如filter.py,然后定义自定义方法

from django.template import Library
register = Library()
@register.filter
def getIcon(mime):
    switch = {
        'default': 'other_icon',
        'txt': 'txt_icon',
        'zip': 'zip_icon',
        'docx': 'word_icon',
    }
    if switch.get(mime):
        return switch.get(mime)
    else:
        return switch.get('default')

4、在模板文件中使用自定义方法:

#加载过滤器
{% load filter %}
#使用过滤器
{% for data in list %}
    <div class="filebox col-md-2 col-sm-3 col-xs-6">
        <div class="file_icon {{ data.mime|getIcon }}"></div>
        <div class="file_name">{{ data.filename }}</div>
    </div>
{% endfor %}