2014-01-23 2 views
0

작은 위키 엔진을 재현하려고합니다.이 tutorial입니다.위키 기사에 대한 링크를 기사 내용으로 바꾸기

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) 

위키 기사가 모델로 deafined된다 :이 튜토리얼에서는 는 페이지를 Wikify는 사용자 정의 필터를 사용합니다. 기사의 wikiwords를 링크가 아닌 대상 기사의 처음 10 단어로 바꾸고 싶습니다. 어떻게 장고 필터와 함께 할 또는 거기에 더 좋은 방법은 그것을 할 수 있습니까? 고맙습니다.

답변

0

re.sub에 함수를 전달할 수 있습니다. Wiki 기사에 사용 된 모델은 명확하지 않지만 여기에 예가 나와 있습니다.

def repl(m): 
    return WikiArticles.objects.get(title=m.group(1)).content[:10] 

@register.filter 
def wikify(value): 
    return wikilink.sub(repl, value) 

참고 : 처음 10 문자는 단어가 아닙니다.

+0

와우! 너무 빨리 대답 해줘서 고마워! – microspace

관련 문제