“'tag'不是已注册的标记库,必须是“在Django应用程序中

qyuhtwio  于 2023-06-25  发布在  Go
关注(0)|答案(3)|浏览(126)

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

@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)

为什么我的第一个标签有效而第二个不行?我试图在注册标签后重置服务器,但没有帮助。

dgjrabp2

dgjrabp21#

https://docs.djangoproject.com/en/2.2/howto/custom-template-tags/
你应该导入templatetags文件名,而不是方法名

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

假设poll_extras.py中有multiply和存款_earn
然后在你的模板中,你只需要调用poll_extras

{% load poll_extras %}

{{ something|multiply }}
or
{{ something|deposit_earn }}
smtd7mpg

smtd7mpg2#

你可能想在完成所有的jizz之后重启服务器。这真的让我花了大约10分钟的时间试图找出问题所在,而我所要做的就是重新启动服务器。

wrrgggsh

wrrgggsh3#

值得一提的是,如果templatetags目录不存在,在创建它之后,不要忘记包含空的__init__.py脚本,这样目录将被视为Python包。否则你仍然会得到Django错误页面。

相关问题