首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-model-utils StatusModel能提供人类可读的状态选项吗?

django-model-utils StatusModel能提供人类可读的状态选项吗?
EN

Stack Overflow用户
提问于 2011-05-19 22:03:13
回答 1查看 1.5K关注 0票数 3

我正在尝试使用Carl Meyer非常棒的django-model-utils包的StatusModel feature来创建一个有状态字段的模型。这是一个非常好的设计,您可以从StatusModel继承您的模型,并将Choices对象传递给模型上名为STATUS的字段,这将自动在数据库表示上创建“status”和“status_changed”字段。

我希望我的status字段有一个与其数据库表示形式不同的人类可读的值,documentation for the Choices class说可以向它传递一个二元组,其中第一个值是选择的数据库表示,第二个值是人类可读的值。但是,当我尝试使用上面的Choices对象对我的StatusModel执行此操作时,当我在模板中使用status字段时,我仍然可以获得数据库表示。

下面是我的模型类的摘录:

代码语言:javascript
复制
from django.utils.translation import ugettext as _
from model_utils import Choices
from model_utils.models import StatusModel

STATUS_CHOICES = Choices(
    ('awaiting_approval', _('Awaiting approval')), 
    ('returned_to_submitter', _('Returned to submitter')), 
    ('approved', _('Approved')), 
    ('denied', _('Denied')),
)

class Petition(StatusModel):
    STATUS = STATUS_CHOICES
    ...

这是我的模板:

代码语言:javascript
复制
<table>
    <tr>
        <th>Status</th>
    </tr>
    {% for petition in petitions %}
    <tr>
        <td>{{ petition.status }}</td> 
        <!-- expecting "Awaiting approval" but it displays "awaiting_approval" -->
    </tr>
    {% endfor %}
</table>

如何让模型类返回人类可读的状态?或者,StatusModel不支持Choices对象的该功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-19 23:03:19

您可以只使用普通的get_FOO_display()方法-在本例中为{{ petition.get_status_display }}

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6059908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档