django tag

官方文档: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 %}

  

原文地址:https://www.cnblogs.com/Tommy-Yu/p/6207176.html