Django-分组数据并显示选项';模板中的名称
我正在尝试创建一个饼图(chart.js)。我的目标是对标题进行分组,并在图表中按标题显示有多少人在工作 型号.pyDjango-分组数据并显示选项';模板中的名称,django,django-models,django-templates,django-queryset,Django,Django Models,Django Templates,Django Queryset,我正在尝试创建一个饼图(chart.js)。我的目标是对标题进行分组,并在图表中按标题显示有多少人在工作 型号.py class人员(models.Model): name=models.CharField(最大长度=30) 姓氏=models.CharField(最大长度=20) titles=models.IntegerField(选项=((1,“研究员”),(2,“技术人员”),(3,“支持人员”),默认值=1) 定义(自我): 返回f“{self.name},{self.names}”
class人员(models.Model):
name=models.CharField(最大长度=30)
姓氏=models.CharField(最大长度=20)
titles=models.IntegerField(选项=((1,“研究员”),(2,“技术人员”),(3,“支持人员”),默认值=1)
定义(自我):
返回f“{self.name},{self.names}”
类元:
db_table=“个人”
详细的名称复数=“Ar Ge Personeller”
视图.py
def索引(请求):
personel_titles=personel.objects.values('titles')。注释(Count('titles'))
上下文={
“个人头衔”:个人头衔,
}
返回呈现(请求'core/index.html',上下文)
打印(个人头衔)
>>>{'titles':1,'titles\u count':10}
{'titles':2,'titles\u count':11}
{'titles':3,'titles\u count':3}>
对我来说没关系,我只需要在这里。但我不知道如何在模板(也在图表标签中)中显示标题的名称
模板
{% for title in personel_titles %}<p>{{ title.get_titles_display }}</p>{% endfor %}
{personel_titles%}中的标题百分比{{title.get_titles_display}{%endfor%}
我错过了什么?如何在值中返回选项的名称?这里需要一些技巧,因为Group By表达式是在数据库级别执行的,而get\u FOO\u display()方法是在python级别执行的 因此,在将值发送到模板之前,需要将显示值附加到上下文,如下所示:
def index(request):
personel_titles = Personel.objects \
.values('titles') \
.annotate(Count('titles'))
for title in personel_titles:
title["titles_display"] = Personel(titles=title["titles"]).get_titles_display()
context = {
"personel_titles": personel_titles,
}
return render(request, 'core/index.html', context)
def索引(请求):
personel_titles=personel.objects\
.值(“标题”)\
.注释(计数(“标题”))
个人头衔中的头衔:
title[“titles\u display”]=个人(titles=title[“titles”])。获取titles\u display()
上下文={
“个人头衔”:个人头衔,
}
返回呈现(请求'core/index.html',上下文)
然后在模板中
{% for title in personel_titles %}
<p>{{ title.titles_display }} --- {{ title.titles__count }}</p>
{% endfor %}
{个人标题中标题的百分比%}
{{title.titles\u display}}--{{title.titles\u count}
{%endfor%}
这里需要一些技巧,因为Group By表达式是在数据库级别执行的,而get\u FOO\u display()方法是在python级别执行的
因此,在将值发送到模板之前,需要将显示值附加到上下文,如下所示:
def index(request):
personel_titles = Personel.objects \
.values('titles') \
.annotate(Count('titles'))
for title in personel_titles:
title["titles_display"] = Personel(titles=title["titles"]).get_titles_display()
context = {
"personel_titles": personel_titles,
}
return render(request, 'core/index.html', context)
def索引(请求):
personel_titles=personel.objects\
.值(“标题”)\
.注释(计数(“标题”))
个人头衔中的头衔:
title[“titles\u display”]=个人(titles=title[“titles”])。获取titles\u display()
上下文={
“个人头衔”:个人头衔,
}
返回呈现(请求'core/index.html',上下文)
然后在模板中
{% for title in personel_titles %}
<p>{{ title.titles_display }} --- {{ title.titles__count }}</p>
{% endfor %}
{个人标题中标题的百分比%}
{{title.titles\u display}}--{{title.titles\u count}
{%endfor%}