如果有多个值

时间:2019-04-20 17:04:19

标签: django

在我的模型中,我有一个值'type_name':

  class FooModel(models.Model):
       type_name = models.CharField(max_length=30)

在我的Views.py中,我想使用数据库中的这些type_name-inputs生成QuerySet,但其中不应包含相同值的多个时间。

我尝试过:

  FooModel.objects.all().values_list('type_name', flat=True)

并获得

 <QuerySet ['X', 'X', 'X', 'Y']>

但是我需要的是:

 <QuerySet ['X', 'Y']>

1 个答案:

答案 0 :(得分:2)

您可以为此添加“ 唯一性过滤器”(通常在数据库端执行),方法是在查询集中添加.distinct()

FooModel.objects.all().values_list('type_name', flat=True).distinct()

这将生成如下查询:

SELECT DISTINCT type_name
FROM app_foo_model