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

4 投票
1 回答
2098 浏览
提问于 2025-04-17 22:02

在网页上,这样显示:

状态:i

我怎么在 Django 模板中显示长名称 "Initiated" 呢?

在我的模板中:

<p>Status: {{ transaction.status }}</p>

models.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'

1 个回答

10

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

<p>Status: {{ transaction.get_status_display }}</p>

你只需要在 get__display 之间加上合适的字段名称就可以了。(在模板中,方法名后面不需要加括号。)这样你就能获取到人类可读的形式。

可以查看 这里的文档

撰写回答