首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Django,如何使用石斑鱼在模板中显示用户友好的名称?

使用Django,如何使用石斑鱼在模板中显示用户友好的名称?
EN

Stack Overflow用户
提问于 2021-05-18 05:20:26
回答 2查看 207关注 0票数 1

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

代码语言:javascript
复制
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")
        ]

它在模型字段中实现:

代码语言:javascript
复制
status = models.CharField(max_length=5,
                            blank=False,
                            null=False,
                            default=InterviewStatus.PENDING,
                            choices=InterviewStatus.ITW_STATUS,
                            verbose_name="Statut de l'interview")

创建新对象时,一切正常。我的模板是这样编写的:

代码语言:javascript
复制
{% 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

  • item1
  • item2

等。

我的问题是:如何才能获得用户友好的名称,而不是仅显示在html字段中的值:

代码语言:javascript
复制
<option value="1-PDG" selected>Interview Planned</option>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 07:21:06

group.list只是一个python list,在模板中可以使用variable.<index>进行索引,这样您就可以获得列表中的第一个对象,并使用它的get_FOO_display method [Django docs]来显示友好的人名:

代码语言:javascript
复制
{% 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>
票数 1
EN

Stack Overflow用户

发布于 2021-05-18 07:16:06

若要显示您指定的用户友好名称,而不是值,请执行以下操作。

代码语言:javascript
复制
<option value="1-PDG" selected>{{ interview.get_status_display }}</option>

{ instance.get_field_display }

在您的例子中是interview,字段是status

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67580360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档