Django从views.py中的数据集中计算两个字段的平均值

时间:2019-08-16 14:20:53

标签: python django django-views

我有一个按年龄分列的男女人口数据集。我想计算平均值。特别是2018年的(男性+女性)/ 2等。请参阅下面的代码示例:

views.py

def Nufus_ilce(request):
    dataset = models.population.objects.all()

    means =

    context = {
        'dataset': dataset,
        'means': means,
    }
    return render(request, 'population.html', context)



population.html

{{ dataset.year }}
{{ dataset.man }}
{{ dataset.woman }}
{{ means }}

那我该如何计算均值?

1 个答案:

答案 0 :(得分:0)

您可以注释原始的查询集,而不是创建新的查询集,例如:

from django.db.models import F

def Nufus_ilce(request):
    dataset = models.population.objects.annotate(
        mean=(F('man') + F('woman'))/2
    )
    context = {
        'dataset': dataset,
    }
    return render(request, 'population.html', context)

因此,我们现在可以使用以下方式呈现此信息:

{% for item in dataset %}
    {{ item.year }}
    {{ item.man }}
    {{ item.woman }}
    {{ item.mean }}
{% endfor %}