Django 模板 - 获取对象的选择字段文本

Django template - get object's choice field text

这是我的模型:

class Person(models.Model):
    ...
    DOP = 1
    PPP = 2
    contract_choices = (
        (DOP, 'always'),
        (PPP, 'sometimes'),
    )

    contract = models.CharField(max_length=3, choices = contract_choices)
    ...

我的模板中需要 contract 字段值:

{% for person in persons %}
{{ person.get_contract_display }}
{% endfor %}

给我“1”(或“2”)而不是 'always'(或 'sometimes')。我怎样才能得到那个字符串 text 而不是整数值?

您有一个 CharField,但您的选择值是整数。改用字符串:

DOP = '1'
PPP = '2'