0

我正在构建一个 Django 博客应用程序,因为这显然是所有酷孩子都在做的事情。我已经构建了一个模板标签,如果它很长,则只显示文章的开头,理想情况下包含指向整个文章的链接。我开始研究转义和 IsSafe=True,但我担心内容本身可能包含 HTML 标签,这可能会使事情变得混乱。

这是我现在拥有的:

@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
4

1 回答 1

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)
于 2013-04-04T03:44:24.687 回答