6

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 %}

前もって感謝します。

4

4 に答える 4

26

組み込みのテンプレートフィルターの切り捨てドキュメントを使用できます

  <div class = "post_body">
      {{ post.body|safe|truncatewords:"50"|linebreaks }}
      <a href="{{ url_for_full_content }}">read more</a>
  </div>
于 2012-10-08T05:38:01.433 に答える
2

フィールドモデルの実装は、SplitFielddjango -model-utils拡張機能で確認できます。

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'

それはあなたが必要とすることを正確に行います。詳細については、ドキュメントをご覧ください。

于 2012-10-08T05:38:31.757 に答える