我有一个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中测试过它。”
答案 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>