我正在django / webfaction上创建一个博客。目前我的主页显示所有帖子的所有内容。我想调整它以显示每个帖子中只有几行,每个帖子以“阅读更多”链接结尾。怎么做到这一点?我是django和python的新手。请帮助我。
home.html中的代码:
{% block content %} {% for post in object_list %} <h2>{{ post.title }} </h2> <div class = "post_meta"> on {{ post.created}} </div> <div class = "post_body"> {{ post.body|safe|linebreaks}} </div> {% endfor %} {% endblock %}
提前致谢。
答案 0 :(得分:16)
您可以使用内置模板过滤器截断doc
<div class = "post_body">
{{ post.body|safe|truncatewords:"50"|linebreaks }}
<a href="{{ url_for_full_content }}">read more</a>
</div>
答案 1 :(得分:2)
您可以在django-model-utils扩展中看到字段模型SplitField
的实现:
from django.db import models
from model_utils.fields import SplitField
class Article(models.Model):
title = models.CharField(max_length=100)
body = SplitField()
>>> a = Article.objects.all()[0]
>>> a.body.content
u'some text\n\n<!-- split -->\n\nmore text'
>>> a.body.excerpt
u'some text\n'
>>> unicode(a.body)
u'some text\n\n<!-- split -->\n\nmore text'
它正确地完成了您的需要。请阅读doc。
中的更多内容