2010-05-23 2 views
3

heyy이장고 'urlize'문자열 형식의 텍스트

난의 이름하자, 텍스트를 구문 분석 할 특정 위치에, 그것은 '포스트'와 'urlize'일부 문자열을 그들이 특정 문자가 포함 된 경우 .

내 '의사'재판은 같을 것이다 :

def urlize(post) 
     for string in post 
     if string icontains ('#') 
     url=(r'^searchn/$', 
        searchn, 
        name='news_searchn'), 
    then apply url to the string 
    return urlize(post) 

내가 함수가 urlized 문자열로 나에게 게시물을 반환 할 필요한 경우 (트위터가하는 것처럼).

나는 이해할 수 없다. 어떻게 텍스트를 파싱하고 특정 문자열을 검색 할 수 있는가? 일부 문자열을 'urlizing'하기 위해 특별히 함수를 만들면 괜찮습니까? 이러한 종류의 문자열이 있더라도 함수는 전체 게시물을 반환해야합니다. 장고가 제공하는 또 다른 방법이 있습니까? 감사합니다.

+0

당신의 (a #으로) 입력의 예를 줄 수 출력을 문자열 ? –

+0

Dana, 정확히 무엇을 성취하려고합니까? 사용자 지정 동작 (클래식 urlize가 아닌)을 구현하려는 것처럼 보이므로 사용자 지정 서식 파일 태그는 자연스럽게 이동하는 방법입니다. –

+0

내 의도는 트위터처럼 작동하는 미니 블로그를 만드는 것입니다. 누군가 #something 형식의 단어가 포함 된 텍스트를 게시하면 #something은 #something이라는 단어가 포함 된 모든 사용자의 모든 게시물로 연결되는 링크 여야합니다. # -word를 찾는 텍스트를 구문 분석하려면 어떻게해야합니까? – dana

답변

4

먼저 템플릿에서이 기능이 필요합니다 ("urlized"게시물을 표시하고 싶음).

있다 문자열 값을 받아 링크를 반환

{{ value|urlize }} 

처럼 사용되는 내장 template tag urlize.

로직을 사용자 정의하려면 create your own template tag을 사용할 수 있습니다.

편집 :
# 단어 간단한 정규식 검색을 사용할 수 있습니다 확인하는 방법은 다음과 같습니다 (링크 포함)

import re 
a = "hello #world. foo #bar! #foo_bar" 
re.findall("#(\w+)",a) 

>> ['world', 'bar', 'foo_bar']