Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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
Python 使用Django,如何使用grouper在模板中显示用户友好的名称?_Python_Django_Templates - Fatal编程技术网

Python 使用Django,如何使用grouper在模板中显示用户友好的名称?

Python 使用Django,如何使用grouper在模板中显示用户友好的名称?,python,django,templates,Python,Django,Templates,My model提供了一个选项列表: class Interview(models.Model): class InterviewStatus(models.Model): PENDING = '1-PDG' XED = '0-XED' DONE = '2-DON' COMPLETE = '3-COM' ITW_STATUS = [ (PENDING, "Interview

My model提供了一个选项列表:

class Interview(models.Model):
    class InterviewStatus(models.Model):
        PENDING = '1-PDG' 
        XED = '0-XED'
        DONE = '2-DON'
        COMPLETE = '3-COM'
        ITW_STATUS = [
            (PENDING, "Interview Planned"),
            (XED, "Interview Cancelled"),
            (DONE, "Interview Done"),
            (COMPLETE, "Interview Done and Assessed")
        ]
在模型字段中实现:

status = models.CharField(max_length=5,
                            blank=False,
                            null=False,
                            default=InterviewStatus.PENDING,
                            choices=InterviewStatus.ITW_STATUS,
                            verbose_name="Statut de l'interview")
创建新对象时,一切正常。 我的模板是这样写的:

{% regroup object_list by status as status_list %}
    <h1 id="topic-list">Interview List</h1>
    <ul>
        {% for status in status_list %}
        <li><h2>{{ status.grouper }}</h2></li>
            <ul>
                {% for interview in status.list %}
                    <li><a href="{{ interview.get_absolute_url }}">{{ interview.official }}{{ interview.date_effective }} </a></li>
        {% endfor %}
            </ul>
{%按状态将对象列表重新组合为状态列表%}
面试名单
    {状态列表%中的状态为%0}
  • {{status.grouper}}
    • {status.list%中的面试百分比}
    • {%endfor%}
我在浏览器中得到的结果是:

。1-PDG

  • 项目1
  • 项目2
等等

我的问题是: 我如何获得用户友好的名称而不是值,这些值应该只显示在html字段中:

<option value="1-PDG" selected>Interview Planned</option>
计划面试

显示您提供的用户友好名称,而不是值

<option value="1-PDG" selected>{{ interview.get_status_display }}</option>
{{interview.get_status_display}
{{instance.get_field_display}


在您的示例中,字段是访谈,字段是状态

组。列表
只是一个python
列表
,在模板中,您可以使用
变量进行索引。
因此您可以获取列表中的第一个对象,并使用它来显示人性化的名称:

{% regroup object_list by status as status_list %}
    <h1 id="topic-list">Interview List</h1>
    <ul>
        {% for status in status_list %}
            <!-- Use `status.list.0.get_status_display` here -->
            <li><h2>{{ status.list.0.get_status_display }}</h2></li>
            <ul>
                {% for interview in status.list %}
                    <li><a href="{{ interview.get_absolute_url }}">{{ interview.official }}{{ interview.date_effective }} </a></li>
                {% endfor %}
            </ul>
{%按状态将对象列表重新组合为状态列表%}
面试名单
    {状态列表%中的状态为%0}
  • {{status.list.0.get_status_display}
    • {status.list%中的面试百分比}
    • {%endfor%}

立即完美地工作!感谢您的回复,但是与Abdul Aziz Barkat提出的解决方案相比,它降低了自动化水平。