首页 > 解决方案 > 使用 Django,如何使用 grouper 在模板中显示用户友好名称?

问题描述

我的模型提供了一个选择列表:

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>

我在浏览器中得到的结果是:

. 1-PDG

等等

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

<option value="1-PDG" selected>Interview Planned</option>

标签: pythondjangotemplates

解决方案


显示您给出的用户友好名称而不是值。

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

{{ instance.get_field_display }}

在您的情况下,实例是面试,字段是状态


推荐阅读