Django:展示选择”;冗长的;查询时的名称(选项位于相关模型中)
我正在尝试编写一个视图,该视图显示一个表,其中每个状态包含项目数 我的模型的简化视图如下所示:Django:展示选择”;冗长的;查询时的名称(选项位于相关模型中),django,python-3.x,django-templates,django-views,Django,Python 3.x,Django Templates,Django Views,我正在尝试编写一个视图,该视图显示一个表,其中每个状态包含项目数 我的模型的简化视图如下所示: 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 = ( (B
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)
我面临的问题是,当我呈现模板时,我只获得状态的编号,并且我需要显示该状态的标签。所以,与其表现出来
状态|实体
-------+---------
0 | 3
1 | 5
2 | 9
我想展示:
状态|实体
--------+---------
坏的| 3
不错| 5
好极了
有办法吗?有人能给我指出正确的方向吗?Django自动为选项标签生成getter,在您的情况下,它将是
get\u status\u display
。请参见视图/models/admin…(python代码)中的获取状态显示()<代码>获取模板中的状态显示