zoukankan      html  css  js  c++  java
  • django中添加新的filter

    给模板传递了一个字典,却发现无法在模板中直接通过key获得value. 查阅资料后,这个问题可以通过添加自定义的filter来解决.

    首先在app目录下创建一个templatetags目录,并在它的下面创建一个__init__.py和dict_get_item.py文件,其中__init__py文件的作用是使templatetags成为一个模块,它直接为空即可.而dict_get_item.py里就需要定义我们的filter,具体名称可以根据自己的需要修改.

    # app/templatetags/dict_get_item.py
    
    from django import template
    register = template.Library()
    
    @register.filter(name='dict_get_item')
    def get_item(dictionary, key):
        return dictionary.get(key)
    

    之后好需要在工程的settings.py文件中添加我们的filter. 在TEMPLATES列表的OPTIONS中添加libraries,例如:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
    
                'libraries': {
                    'dict_get_item' : 'app.templatetags.dict_get_item',
                }
            },
        },
    ]
    

    完成之后,我们就能在自己的模板文件中使用取key的方式访问dict.

    {% load dict_get_item %}
    
    {{ dict | dict_get_item:key   }}  
    
  • 相关阅读:
    SQL中 patindex函数的用法
    纵表与横表互转的SQL
    几种数据库的大数据批量插入【转】
    使用cmd命令行窗口操作SqlServer
    C#性能优化实践
    C# 图像处理(二)—— 黑白效果
    SQLSERVER系统视图
    SQLServer行列转换 Pivot UnPivot
    C#图片处理常见方法性能比较
    GSM局数据制作1(Erision)
  • 原文地址:https://www.cnblogs.com/xl2432/p/10883211.html
Copyright © 2011-2022 走看看