📜  django 查询集唯一值 - Python (1)

📅  最后修改于: 2023-12-03 15:00:27.214000             🧑  作者: Mango

Django 查询集唯一值

在 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 中查询唯一值的两种方法,可以根据具体场景选择合适的方法来查询数据库中的唯一值。