我正试图从这个tutorial重现小型wiki引擎。 在本教程中,他们使用自定义过滤器来浏览页面:
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)
维基文章被模型所揭示。 我想在文章中替换wikiwords而不是链接,而是用目标文章中的前十个单词替换。如何使用django过滤器或者有更好的方法吗?谢谢。
答案 0 :(得分:0)
您可以将功能传递给re.sub
。用于维基文章的模型尚不清楚,但这是一个例子:
def repl(m):
return WikiArticles.objects.get(title=m.group(1)).content[:10]
@register.filter
def wikify(value):
return wikilink.sub(repl, value)
注意:返回的前十个字符不是单词。