私はdraft
、launching
、launched
の3つのステータスを持つモデルを持っています。私が欲しいのは、モデルを特定の順序で表示することです。最初の草案を作成し、それを起動してから起動します。私は0_draft
、1_launching
、2_launched
のように私の属性に名前をつけたくないのですが、これは道路上で問題になるでしょう。私は私のDBに明確な値が必要です。django ORM - ステータス値による注文
これらの値にいくつかの整数を付ける方法はありますか?
このための理想的な構文は次のようになります。
def detect_status_number(campaign):
if campaign.status == 'draft':
return 1
... etc ...
cs = Campaign.objects.annotate(new_arg=lambda campaign: detect_status_number(campaign))
cs = cs.order_by('new_arg').all()
これは明らかに動作しません。この作業を行う方法はありますか?