官方文档:https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#simple-tags
stackoverflow demo:http://stackoverflow.com/questions/6451304/django-simple-custom-template-tag-example
我的demo:
# -*- coding:utf-8 -*- from django import template register = template.Library() @register.simple_tag def one_of(target, *matchlist): return target in matchlist
动机:django模板中in关键字的实现
碰到的问题:自定义的tag模块无法加载,解决方案参考:http://stackoverflow.com/questions/5493776/django-current-tags-is-not-a-valid-tag-library
即:
1. 检查installed_app是否有这个模块
2. 检查有没有语法错误。 通过python manage.py shell 导入相关的函数(one_of),并执行。
3. 检查该模块的是否在tag实际被引用的模块前面(installed_app里面)。我的问题就卡这里。
4. 其他, 删掉pyc文件、重启服务等等。
使用:xxx.html
{% load my_tags %} {% one_of 'taget', 'aaa','bbb','ccc','ddd', 'target' as is_in %} {% if is_in %} xxxx {% endif %}