如何使用 Django 1.7 中的工具计算百分比
How to calculate percentage with facility in Django 1.7
如何在 Django 1.7 中计算百分比?
我需要return
[{'gender': 'F', 'perc': 55.0%}, {'gender': 'M', 'perc': 45.0%}]
在这种情况下,我尝试
from myproject.core.models import Person
from django.db.models import Count
g = Person.objects.values('gender').annotate(perc=Count('gender')).order_by('gender').values('gender', 'perc')
total_itens = Person.objects.count()
但不是结果,我尝试
gender_m = Person.objects.filter(gender='M').count()
gender_f = Person.objects.filter(gender='F').count()
total_itens = Person.objects.count()
gender_m * 100 / total_itens
gender_f * 100 / total_itens
我的问题:如何在上下文中 return this 并在模板中呈现?
在我要使用的模板中
{% for item in itens %}
{{ item.gender }} - {{ item.value }}
{% endfor %}
我使用 TemplateView(通用视图)
您只需重写方法 get_context_data
。而你的第一次试炼就快完成了。
class MyView(TemplateView):
template_name = 'template.html'
def get_context_data(self, **kwargs):
genders = Person.objects.values('gender').annotate(cnt=Count('gender')).order_by('gender')
total_items = Person.objects.count()
items = [
{'gender': g['gender'], 'value': g['cnt'] * 100 / total_items} for g in genders
]
return {'items': items}
如何在 Django 1.7 中计算百分比?
我需要return
[{'gender': 'F', 'perc': 55.0%}, {'gender': 'M', 'perc': 45.0%}]
在这种情况下,我尝试
from myproject.core.models import Person
from django.db.models import Count
g = Person.objects.values('gender').annotate(perc=Count('gender')).order_by('gender').values('gender', 'perc')
total_itens = Person.objects.count()
但不是结果,我尝试
gender_m = Person.objects.filter(gender='M').count()
gender_f = Person.objects.filter(gender='F').count()
total_itens = Person.objects.count()
gender_m * 100 / total_itens
gender_f * 100 / total_itens
我的问题:如何在上下文中 return this 并在模板中呈现?
在我要使用的模板中
{% for item in itens %}
{{ item.gender }} - {{ item.value }}
{% endfor %}
我使用 TemplateView(通用视图)
您只需重写方法 get_context_data
。而你的第一次试炼就快完成了。
class MyView(TemplateView):
template_name = 'template.html'
def get_context_data(self, **kwargs):
genders = Person.objects.values('gender').annotate(cnt=Count('gender')).order_by('gender')
total_items = Person.objects.count()
items = [
{'gender': g['gender'], 'value': g['cnt'] * 100 / total_items} for g in genders
]
return {'items': items}