简体   繁体   English

如何仅从 Django 查询集中获取值?

[英]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' , flat=True ) to obtain a collection that only contains the categories.此外,您可以使用.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM