gra*_*pot 3 python django django-models
我正在尝试使用Carl Meyer令人敬畏的django-model-utils包的StatusModel功能来创建具有状态字段的模型。这是一个非常不错的设计,您可以在其中将模型子类化,然后将对象传递给模型中名为STATUS的字段,该字段将在数据库表示形式上自动创建“ status”和“ status_changed”字段。StatusModelChoices
我希望状态字段具有比其数据库表示形式更易于理解的值,并且该类的文档Choices说,可以将其传递给两个元组,其中第一个值是所选内容的数据库表示形式,第二是人类可读的价值。但是,当我尝试使用上述Choices对象使用StatusModel进行此操作时,在模板中使用status字段时仍会获得数据库表示形式。
这是我的模型课的摘录:
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
...
Run Code Online (Sandbox Code Playgroud)
这是我的模板:
<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>
Run Code Online (Sandbox Code Playgroud)
如何获得模型类以返回人类可读状态?还是不StatusModel支持该Choices对象的功能?