是否可以更改QuerySet对象中的某些特定项?在我的情况下,我正在尝试切割长度超过40个字符的“标题”字段,并在字段末尾附加“...”。
答案 0 :(得分:3)
有两种方法可以做你想做的事。
第一种是使用Django过滤器。因此,如果您循环查询集的项目并在页面上显示它们,请使用truncatewords之类的内容。你可以在你的模板中使用这个:
{% for item in queryset %}
<h1>{{ item.title|truncatewords:3 }}</h1>
{% endfor %}
看起来似乎没有用于截断字符数的Django过滤器。如果你想write your own filter,那就不难了。
另一种选择是在模型上放置一个方法来做你想要的。这是一个例子:
@property
def short_title(self):
return '%s...' % self.title[:40]
然后,您就可以在模板中的任何位置引用{{object.short_title}}。
答案 1 :(得分:1)
我建议为每个对象添加一个新属性'adjusted_title'
for item in your_query_set:
if(len(item.title) > 40):
item.adjusted_title = item.title[0:40] + "..."