我的模型提供了一个选择列表:
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>发布于 2021-05-18 07:21:06
group.list只是一个python list,在模板中可以使用variable.<index>进行索引,这样您就可以获得列表中的第一个对象,并使用它的get_FOO_display method [Django docs]来显示友好的人名:
{% 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>发布于 2021-05-18 07:16:06
若要显示您指定的用户友好名称,而不是值,请执行以下操作。
<option value="1-PDG" selected>{{ interview.get_status_display }}</option>{ instance.get_field_display }
在您的例子中是interview,字段是status
https://stackoverflow.com/questions/67580360
复制相似问题