【问题标题】:Why choice field displays keys instead of values in django queryset?为什么选择字段在 django 查询集中显示键而不是值?
【发布时间】:2017-08-17 05:39:18
【问题描述】:

我的 models.py 中有一个选择字段

models.py

STATUS = (
    ('closed_issue', 'Closed Issue'),
    ('open_ssue', 'Open Issue'),
    ('pending', 'Pending'),
)

class Issue(models.Model):
    name = models.CharField(max_length=45)
    status = models.CharField(max_length=50, choices=STATUS)

views.py

def Issues(resuest):
    issues = Issue.objects.all()

模板

{% for issue in issues %}
     {{ issue.status }}
{% endfor %}

输出

closed_issue 
open_issue 

它显示选择字段的键而不是值

我希望在模板中显示这些值。有没有办法获取值而不是键?

感谢您的帮助。

【问题讨论】:

标签: python django choicefield


【解决方案1】:

当然有办法:

{{ issue.get_status_display }}

为了获得STATUSes 的值,您必须使用命名约定get_<field_name>_display()。更多关于这个here

【讨论】:

  • 我还有一个疑问,如果我想在我的观点中做同样的事情,例如`对于问题中的问题:打印(issue.status)`
  • 你也应该这样做,即for issue in issues: print(issue.get_status_display())
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
相关资源
最近更新 更多