以人类可读的格式显示选择字段

Kla*_*tro 1 python django

在网页中,这呈现为

状态:我

如何在 django 模板中显示长名称“Initiated”?

在我的模板中

<p>Status: {{ transaction.status }}</p>
Run Code Online (Sandbox Code Playgroud)

模型.py

class Transaction(models.Model):
    creator = models.SlugField()
    amount = models.DecimalField(max_digits= 999,decimal_places =2,null= True,default=0)
    accepted_by = models.SlugField()
    oferto_slug = models.SlugField()
    STATUSES = (
        ('i', 'Initiated'),
        ('a', 'Accepted'),
        ('d', 'Delivered'),
        ('c', 'Cancelled'),
    )
    status = models.CharField(choices=STATUSES, default='i',max_length=10)


views.py
 def __init__():
    self.state = 'i'
Run Code Online (Sandbox Code Playgroud)

πόδ*_*κύς 7

在你的模板中,试试这个:

<p>Status: {{ transaction.get_status_display }}</p>
Run Code Online (Sandbox Code Playgroud)

您只需在get_和之间添加限定的字段名称_display。(模板中方法名称后不需要括号。)这将使您可以访问人类可读的形式。

请参阅此处的文档