与CamelCase建立联系

时间:2015-09-03 14:54:00

标签: python django

我试试'用CamelCase创建一个新页面。我正在按照教程使用自定义过滤器来浏览页面:

from django import template
import re

wikilink = re.compile("\\b([A-Z][a-z]+[A-Z][a-z]+)\\b")
register = template.Library()

@register.filter
def wikify(value):
    return wikilink.sub(r"<a href='/wikicamp/\1/'>\1</a>", value)

在turtorial中,这段代码应该可行。我没有收到错误,但在我的应用中,它只显示了这一点:

  

<a href='/wikicamp/NewPage/'>NewPage</a>

而不是NewPage作为CamelCase&#39;字&#39;。 我可以用另一种方式做,或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

您需要将输出标记为&#34; safe&#34;用于呈现HTML。如果您信任可以提供给模板过滤器的任何输入,并且您知道它不是恶意的,那么您可以这样做:

from django.utils.safestring import mark_safe    

@register.filter
def wikify(value):
    output = wikilink.sub(r"<a href='/wikicamp/\1/'>\1</a>", value)
    return mark_safe(output)