2014-02-06 60 views
1

我试图在Django中分割一段,以便我可以应用不同的样式,但无法弄清楚如何获得截断的后半部分。Django:如何获取“截断字”的截断部分

为了让上半年我使用:

<p class="leader">{{ post.body|truncatewords:30 }}</p> 

下半年会像

<p>{{ post.body|truncatewords?? }}</p> <!-- need to get 30 - end --> 

我敢肯定有一个简单的方法 - 让我知道如果有谁知道这个怎么做。

谢谢!

+0

非常有帮助的答案,但迫使帖子内和使用{{文章|安全}过滤器最终被更容易。 – user3279773

回答

3

这是很容易,要求对SO :)

from django import template 

register = template.Library() 

@register.filter 
def truncatedwords(value, arg): 
    return " ".join(value.split()[arg:]) 

快速测试:

>>> def truncatedwords(value, arg): 
...  return " ".join(value.split()[arg:]) 
... 
>>> value = "This is the second part" 
>>> arg = 3 
>>> truncatedwords(value, arg) 
'second part' 
>>> 

所有你需要知道的是在文档:https://docs.djangoproject.com/en/1.6/howto/custom-template-tags/

UPDATE:

看看Django的源代码。 Truncatewords住在: django.template.defaultfilters并使用下面django.utils.text.Truncator

+0

@ user3279773是否回答了您的问题?反馈赞赏! – allcaps