为什么Django查询集中的choice字段显示键而不是值?

3

我在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 

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

我希望在模板中显示值。是否有一种方法可以获取值而不是键?

谢谢任何帮助。


请参见https://dev59.com/vm855IYBdhLWcg3weUMQ,以及get_FOO_display函数。 - JamesO
1个回答

7
当然有方法:
要获取状态值,您必须使用名称约定“get__display()”。更多信息请参见此处。

{{ issue.get_status_display }}

关于获取STATUS值的更多信息,请点击此处


还有一个疑问,如果我想在我的视图中做同样的事情怎么办,例如 for issue in Issues : print(issue.status) - aprasanth
你应该做相同的事情,即 for issue in issues: print(issue.get_status_display()) - nik_m
如果我想使用指向另一个模型的“键字段”的“ManyToManyField”来获取我的“choice_field”,那么如何显示“ManyToManyField”的相关值? - Love Putin Not War

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接