【发布时间】:2018-10-06 08:45:00
【问题描述】:
我正在尝试编写一个视图,该视图显示一个表格,其中包含每个状态的项目数。
我的模型的简化视图如下:
from django.db import models
class Entity(models.Model):
name = models.CharField(max_length=20)
class Status(models.Model):
BAD = 0
NICE = 1
GREAT = 2
STATUS_CHOICES = (
(BAD, 'Bad'),
(NICE, 'Nice'),
(GREAT, 'Great')
)
entity = models.OneToOneField(Entity, on_delete=models.CASCADE,
related_name='status')
status = models.IntegerField(choices=STATUS_CHOICES, db_index=True)
所以,在我的views.py 文件中,我有这样的视图:
from django.shortcuts import render
from django.db.models import Count
def my_summary(request):
q = Entity.objects.values('status__status').annotate(n=Count('pk'))
context = {'table_data':q}
return render(request, 'my_app/summary_template.html', context)
我面临的问题是,当我渲染模板时,我只得到状态的编号,我需要显示该状态的标签。所以,而不是显示
status | entities
-------+---------
0 | 3
1 | 5
2 | 9
我想展示:
status | entities
--------+---------
BAD | 3
NICE | 5
GREAT | 9
有办法吗?谁能指出我正确的方向?
【问题讨论】:
-
get_status_display()在views/models/admin....(python 代码)。get_status_display在模板中
标签: django python-3.x django-templates django-views