繁体   English   中英

在 django 注册自定义过滤器

[英]Register custom filter in django

我的过滤器没有注册并且不确定它在哪里被绊倒了。

在测试/模板标签中

__init__.py
test_tags.py

test_tags.py 包括

from django import template

register.filter('intcomma', intcomma)

def intcomma(value):
    return value + 1

test/templates 包含 pdf_test.html,内容如下

{% load test_tags %} 
<ul>
    <li>{{ value |intcomma |floatformat:"0"</li>
</ul>

float 格式工作正常但在 intcomma 上没有运气

首先,您还没有定义register

要成为有效的标记库,模块必须包含名为register的模块级变量,该变量是template.Library实例,其中注册了所有标记和过滤器。

另外,我通常使用register.filter修饰函数:

from django import template

register = template.Library()

@register.filter
def intcomma(value):
    return value + 1

从 django.template.defaulttags 导入寄存器

from django.template.defaulttags import register

视图.py

        from django.template.defaulttags import register
    
    @register.filter
    def intcomma(value):
        return value + 1
..........................other code.................................

在此处输入图像描述

列表.html

{% extends "base.html" %}

    {% block content %}
    
      <ul>
        <li><h1>{{ 2.568|intcomma|floatformat:"0" }}</h1></li>
      </ul>
    
    {% endblock content %}

在此处输入图像描述

Output 像这样:-

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM