📅  最后修改于: 2023-12-03 14:40:46.528000             🧑  作者: Mango
在 Django 中,使用 Queryset 可以轻松地从数据库中检索、过滤和排序对象。有时需要从查询结果中获取唯一值的平均值。
可以使用 distinct()
可以获取唯一值,例如:
from myapp.models import MyModel
qs = MyModel.objects.values_list('field1', flat=True).distinct()
以上代码将返回一个包含 field1
值的列表,这些值是唯一的。
可以使用 aggregate()
方法计算唯一值的平均值,例如:
from myapp.models import MyModel
avg_value = MyModel.objects.values_list('field1', flat=True).distinct().aggregate(avg_value=Avg('field1'))['avg_value']
以上代码将返回唯一值 field1
的平均值,即 avg_value
。
from django.db.models import Avg
from myapp.models import MyModel
unique_values = MyModel.objects.values_list('field1', flat=True).distinct()
avg_value = unique_values.aggregate(avg_value=Avg('field1'))['avg_value']
以上代码将返回唯一值 field1
的列表和平均值 avg_value
。
使用 distinct()
方法可以获取唯一值,使用 aggregate()
方法可以计算唯一值的平均值。以上代码可以用于 Django 中的任何 Model 中。