QuerySet オブジェクトの特定の項目を変更することはできますか? 私の場合、長さが 40 文字を超える「タイトル」フィールドをスライスし、フィールドの最後に「...」を追加しようとしています。
2300 次
2 に答える
4
あなたがしたいことをする2つの方法があります。
1 つ目は、Django フィルターを使用することです。したがって、クエリセットのアイテムをループしてページに表示する場合は、truncatewordsなどを使用します。これをテンプレートで次のように使用します。
{% for item in queryset %}
<h1>{{ item.title|truncatewords:3 }}</h1>
{% endfor %}
文字数に基づいて切り捨てるための Django フィルターがあるようには見えません。独自のフィルターを作成する場合は、それほど難しくありません。
もう1つのオプションは、モデルにメソッドを配置して、必要なことを行うことです。次に例を示します。
@property
def short_title(self):
return '%s...' % self.title[:40]
テンプレート内の任意の場所で、これを {{ object.short_title }} として参照できます。
于 2009-11-19T15:38:04.200 に答える
1
各オブジェクトに新しいプロパティ「adjusted_title」を追加することをお勧めします
for item in your_query_set:
if(len(item.title) > 40):
item.adjusted_title = item.title[0:40] + "..."
于 2009-11-19T15:39:00.830 に答える