[英]How do I only get values from Django queryset?
So I have a filtered QuerySet with a specific field, that looks like this:所以我有一个带有特定字段的过滤查询集,如下所示:
[{'category':'book'}, {'category':'food'}, {'category':'movie'}, {'category':'book'}, {'category':'style'}, ...]
. [{'category':'book'}, {'category':'food'}, {'category':'movie'}, {'category':'book'}, {'category':'style'}, ...]
。
I now want to make a list that only contains the values(book, food, movie, style), with no duplicates.我现在想制作一个只包含值(书籍、食物、电影、风格)的列表,没有重复项。 How do I make it possible?
我怎样才能使它成为可能? Thanks.
谢谢。 :)
:)
You add .distinct()
on it to retrieve the value only once.您在其上添加
.distinct()
以仅检索一次该值。 Furthermore instead of using .values('category')
, you can use .values_list('category'
to obtain a collection that only contains the categories., flat=True )
此外,您可以使用
.values_list('category' , flat=True )
来获取仅包含类别的集合,而不是使用.values('category')
。
So the queryset should look like:所以查询集应该如下所示:
SomeModel.objects.
values_list('category'
, flat=True).distinct()
That being said, based on how you retrieve data, it looks like you have data duplication .话虽如此,根据您检索数据的方式,您似乎有数据重复。 You for example store the name of a category, instead of making a
Category
model and link to that category.例如,您存储类别的名称,而不是创建
Category
model 并链接到该类别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.