在Django模板中使用标记过滤器时的故障排除

在Django模板中使用标记过滤器时的故障排除,django,markdown,markup,deprecated,Django,Markdown,Markup,Deprecated,使用降价库时,我似乎遇到以下错误: “标记”筛选器中出错:Django不支持的版本 Python标记库

使用降价库时,我似乎遇到以下错误:

“标记”筛选器中出错:Django不支持的版本 Python标记库<2.1

例如,它出现在标记上,例如:

{{ticket.get_description|markdown:"safe,footnotes,tables"}}
get_description
功能在
Ticket
模型中定义。我们最近升级到了Django 1.5,代码是在Django 1.4之前编写的。我还将标记库升级到2.3.1,但问题仍然存在。我还清除了旧的.pyc文件,这只是为了确定


从我所读到的内容来看,
django.contrib.markup
库。那么,建议的解决方案/备选方案是什么呢?

一个想法是安装python的markdown2库 然后你创建你的装饰

import markdown2
.. all other imports needed..

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def markdown2(value):
    return mark_safe(markdown2.markdown(force_unicode(value),safe_mode=True,enable_attributes=False))
那你就用它

{% load myapp_markup %}
{{ value|markdown2 }}
代码是从

中添加的(未测试),只是一个更新:

我的装饰师看起来像这样:

import markdown2
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def convertTxt(value):
    return mark_safe(markdown2.markdown(force_unicode(value)))

register.filter('convertTxt', convertTxt)

另外,我注意到将模块或方法命名为markdown2:)是不谨慎的。

python-markdown2的作者发表了一篇文章。安装该应用程序后,您可以执行
{{value | markdown}