[英]Can django-model-utils StatusModel provide human readable status options?
我正在嘗試使用Carl Meyer的令人敬畏的django-model-utils包的StatusModel功能來創建具有狀態字段的模型。 這是一個非常好的設計,您可以從StatusModel
模型並將Choices
對象傳遞給名為STATUS的模型上的字段,該字段會自動在數據庫表示上創建“status”和“status_changed”字段。
我希望我的status字段有一個單獨的人類可讀值而不是數據庫表示, Choices
類的文檔說它可以傳遞一個二元組,其中第一個值是選擇的數據庫表示形式,第二個是人類可讀的價值。 但是當我嘗試使用上面的Choices
對象使用我的StatusModel時,我仍然在模板中使用狀態字段時獲得數據庫表示。
這是我的模型類的摘錄:
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
...
這是我的模板:
<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
對象的該功能?
你可以使用普通的get_FOO_display()
方法 - 在這種情況下{{ petition.get_status_display }}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.