"'tag'不是一个注册的标签库。必须是Django应用中的一个"。

问题描述 投票:1回答:1

我在模板标签中添加了我的简单标签到我的文件中。我的第一个标签是可见的,而且工作正常,但第二个标签不工作。我收到的信息是 ''deposit_earn' is not a registered tag library. Must be one of:' 当我在模板中加入标签后 {% load deposit_earn %}.

我的标签文件是这样的。

@register.simple_tag()
def multiply(number_instalment_loans, rrso, balance):
    rrso_percent = rrso/100
    return round(discounted_interest_rate(12, number_instalment_loans, rrso_percent, balance))

@register.simple_tag()
def deposit_earn(period, interest, balance):
    interest_percent = interest/100
    equals = balance * interest_percent * period / 12
    return round(equals)

为什么我的第一个标签能用,第二个却不行?我尝试在注册标签后重新设置服务器,但没有用。

django tags
1个回答
4
投票

https:/docs.djangoproject.comen2.2howtocustom-template-tags。

你应该导入templatetags文件名,而不是方法名。

polls/
    __init__.py
    models.py
    templatetags/
        __init__.py
        poll_extras.py
    views.py

比如说,在poll_extras.py中调用multiply和deposit_earn。

然后在你的模板中,你只需要调用poll_extras

{% load poll_extras %}

{{ something|multiply }}
or
{{ something|deposit_earn }}
© www.soinside.com 2019 - 2024. All rights reserved.