簡體   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