在app下面创建templatetags目录,记得将app添加到settings.py中的INSTALLED_APPS下;并在该目录下添加__init__.py。
如图:
文件内容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django import template
import os
register = template.Library()
#@register.filter(name="checkico")
@register.filter
def checkico(value):
file_count = os.popen("ls /root/web/static/image/|grep %s |wc -l" % value).read()[0]
if file_count == '0':
target_ico = "default"
else:
target_ico = value
return target_ico
这个过滤器的作用是检测目录下是否有某个图片,没有时返回默认图片。
@register.filter默认使用函数名作为过滤器名。
@register.filter(name='123')注册过滤器时使用别名123.
写完重启项目即可。