2

是否可以更改 QuerySet 对象中的某些特定项目?就我而言,我正在尝试对长度超过 40 个字符的“标题”字段进行切片,并在字段末尾附加“...”。

4

2 回答 2

4

有两种方法可以做你想做的事。

第一种是使用 Django 过滤器。因此,如果您正在遍历查询集的项目并将它们显示在页面上,请使用类似truncatewords的内容。您可以在模板中这样使用:

{% for item in queryset %}
    <h1>{{ item.title|truncatewords:3 }}</h1>
{% endfor %}

看起来没有 Django 过滤器可以根据字符数截断。如果您想编写自己的过滤器,这并不难。

另一种选择是在模型上放置一个方法来做你想做的事。这是一个例子:

@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 回答