如何在django html中导入模块?

时间:2017-06-28 09:10:39

标签: python django django-models django-templates

我有一个django博客。我需要使用附魔检查博客文章中的文本是否为英文,然后在文本错误更正中使用api。

我在django博客的虚拟环境中安装了api

  

pip install pyenchant

项目,并将其包含在已安装的应用程序中,但在博客base.html中,我尝试加载它并使用它的功能来检查帖子标题是否为英文,但我什么也没做。怎么解决这个? 这是我的HTML代码:

{% load enchant %}

{% dictionary = enchant.Dict("en_US") %}
<p>{% dictionary.check(post.title) %}</p>

运行服务器时没有错误,但html页面上没有任何内容。 注意:根据API,在段落标记中它应该是True of False。 “我在python shell中测试过它。”

1 个答案:

答案 0 :(得分:4)

你不能这样做。 跟我来:):

使用pyenchant 存在 isn&t模板标记以使用django(我从doc中学到了什么)。 你的代码 dictionary = enchant.Dict("en_US")在django后端是可以的,但它也不适合django模板。

为了实现这一目标,您可以创建自定义模板标记,以便在您的python代码和模板语言之间进行连接。

您可以按照以下方式执行操作:

templatetags
templatetags/__init__.py
templatetags/pyenchant_tags.py

templatetags / pyenchant_tags.py文件

import enchant
from django import template

register = template.Library()

@register.simple_tag
def please_enchant_my_string(language, string):
    d = enchant.Dict(language)
    return d.check(string)

模板部分,标记为:

{% load pyenchant_tags %}

<div>
    {% please_enchant_my_string 'en_US' post.title %}
</div>