Django 修改查询集结果
是否可以更改QuerySet对象中的某些特定项?在我的例子中,我尝试将长度超过40个字符的“title”字段切分,并在字段末尾附加“…”。有两种方法可以实现您想要的功能 第一种是使用Django过滤器。因此,如果要循环查询集的项目并将它们显示在页面上,请使用以下命令。您可以在模板中这样使用:Django 修改查询集结果,django,slice,django-queryset,Django,Slice,Django Queryset,是否可以更改QuerySet对象中的某些特定项?在我的例子中,我尝试将长度超过40个字符的“title”字段切分,并在字段末尾附加“…”。有两种方法可以实现您想要的功能 第一种是使用Django过滤器。因此,如果要循环查询集的项目并将它们显示在页面上,请使用以下命令。您可以在模板中这样使用: {% for item in queryset %} <h1>{{ item.title|truncatewords:3 }}</h1> {% endfor %} 然后,您
{% for item in queryset %}
<h1>{{ item.title|truncatewords:3 }}</h1>
{% endfor %}
然后,您就可以在模板中的任何位置将其引用为{{object.short_title}。我建议为每个对象添加一个新属性“adjusted_title”
for item in your_query_set:
if(len(item.title) > 40):
item.adjusted_title = item.title[0:40] + "..."
您是要将这些更改保存到数据库中,还是只在页面上显示它们?这会起作用,但可能意味着在queryset中出现不必要的循环。最好是像我建议的那样,将逻辑放在模型上的一个方法中,这样可以保存一个不必要的循环,以防在其他地方需要逻辑。hi@sheats,我们可以在queryset中添加一个新的列字段吗?我想尝试在查询集中添加新值,并使用for循环返回模板中的值。
for item in your_query_set:
if(len(item.title) > 40):
item.adjusted_title = item.title[0:40] + "..."