📅  最后修改于: 2023-12-03 15:00:27.214000             🧑  作者: Mango
在 Django 中,我们可以使用查询集(QuerySet)来操作数据库。当我们需要查询数据库中的唯一值时,可以使用以下两种方法。
.distinct()
使用 .distinct()
方法可以从查询集中获取唯一值。
unique_values = ModelName.objects.values('field_name').distinct()
上述代码将会查询 ModelName
模型中 field_name
字段中所有的唯一值,并返回一个查询集。
值得注意的是,.distinct()
方法只能用于字段查询。如果我们需要获取整个 queryset 的唯一值,那么可以使用 .distinct()
方法的参数。
unique_values = ModelName.objects.distinct()
上述代码将会返回整个 ModelName
模型中的所有唯一行,并返回一个查询集。
.values_list()
与 .distinct()
使用 .values_list()
方法来获取一个包含所有唯一值的元组,然后再使用 .distinct()
方法去掉重复值。
unique_values = ModelName.objects.values_list('field_name', flat=True).distinct()
上述代码将会查询 ModelName
模型中 field_name
字段中所有的唯一值,并返回一个包含这些唯一值的元组。
需要注意的是,我们使用了 .flat=True
参数来获取一个扁平化的元组,即只包含值而不包含字段名。
以上就是 Django 中查询唯一值的两种方法,可以根据具体场景选择合适的方法来查询数据库中的唯一值。