Django的:而在基本模板文件加载自定义过滤器,同时使用模板继承问题(Django: proble

2019-09-17 00:13发布

当进行{% load custom_filters %}模板,后{% extends "base.html" %}一切工作正常,但是当我移动负载到base.html文件模板过滤得到一个怪异的行为。 这是我的custom_filters.py

from django import template
from django.template.defaultfilters import stringfilter

register = template.Library()

# To cut off strings at a specified character, at first occurance. Example:
#   time = 19:30:12.123456
#   {{ time|cut:'.' }}
#   returns: 19:30:12
@register.filter
@stringfilter
def cut(string, cutoff_point):
    return string.split(cutoff_point, 1)[0]

当我在“端模板”中加载不出所料的行为。 如果time = 19:30:12.123456然后{{ time|cut:'.' }} {{ time|cut:'.' }}返回19:30:12 。 当我在加载它base.html返回的值是19:30:12123456 ,同样作为输入,但不带“的截止点”。

有谁知道为什么吗?

Answer 1:

你应该把{% load ... %}在每个模板,要使用自定义标签和过滤器。

在你的情况下,它也并不是一个好主意来调用过滤器cut ,因为这种过滤器已经存在 (和它的用于切割从串点)。



文章来源: Django: problems while loading custom filters in the base template file while using template inheritance