Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:展示选择”;冗长的;查询时的名称(选项位于相关模型中)_Django_Python 3.x_Django Templates_Django Views - Fatal编程技术网

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代码)中的

获取状态显示()<代码>获取模板中的状态显示