2013-04-04 118 views
0

我正在構建一個Django博客應用程序,因爲這顯然是所有酷炫的孩子正在做的事情。我已經構建了一個模板標籤,以便只顯示帖子的開頭,如果它很長,並且最好包含整個帖子的鏈接。我開始考慮轉義並且IsSafe = True,但是我擔心內容本身可能包含HTML標籤,可能會導致混亂。在Django模板標籤中包含一個URL

這是我現在有:

@register.filter(name='shorten') 
def shorten(content): 
    #will show up to the first 500 characters of the post content 
    if len(content) > 500: 
     return content[:500] + '...' + <a href="/entry/{{post.id}}">(cont.)</a> 
    else: 
     return content 

回答

1
from django.utils.safestring import mark_safe 

@register.filter(name='shorten') 
def shorten(content, post_id): 
    #will show up to the first 500 characters of the post content 
    if len(content) > 500: 
     output = "{0}... <a href='/entry/{1}'>(cont.)</a>".format(content[:500], post_id) 
    else: 
     output = "{0}".format(content) 

    return mark_safe(output) 
+0

嗯...顯然越來越近。我糾正它應該是(注意引號): 'output =「{0} ... (cont.)」.format(content [:500])' – thumbtackthief 2013-04-05 20:46:16

+0

不改變引號,我得到一個語法錯誤。有了它,它會重定向到/entry/%7bpost.id%7d。 – thumbtackthief 2013-04-05 20:47:02

+0

你需要通過有效的'post.id' – catherine 2013-04-06 02:32:38

相關問題