在django帖子中“阅读更多”

时间:2012-10-08 04:59:54

标签: python html django django-templates

我正在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 %}

提前致谢。

2 个答案:

答案 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

中的更多内容