我有一个表叫user_info
。我要所有用户的名字。所以这个表有一个名为name
的字段。所以在sql中我做一些类似的事情
SELECT distinct(name) from user_info
但是我不知道如何在Django中做到这一点。通常,如果我已经知道了某个值,那么我可以做如下所示的事情。
user_info.objects.filter(name='Alex')
然后获取该特定用户的信息。
但是在这个例子中,对于给定的表,我想使用django ORM获取所有的name值,就像我在sql中所做的那样。
这是我的Django模型
class user_info(models.Model):
name = models.CharField(max_length=255)
priority = models.CharField(max_length=1)
org = models.CharField(max_length=20)
我如何在Django中做到这一点?
4条答案
按热度按时间csbfibhn1#
可以使用
values_list
。注意,在Python中,类通常在InitialCaps中定义:你的模型应该是UserInfo。
4szc88ey2#
您可以使用丹尼尔的答案中给出的
values_list()
,它将在包含字段中的值的列表中为您提供数据。或者你也可以像这样使用values()
:它将返回一个包含字典的查询集。
values_list()
和values()
用于选择表中的列。bcs8qyzn3#
除了接受的答案之外,如果字段是外键,则在查询集中返回id值(数字)。因此,如果你期望在外键所属的模型中定义其他类型的值,那么你必须像这样修改查询:
ibrsph3r4#
这是我的燃烧速度的方式得到它!;)