我有三種狀態的模型:draft
,launching
,launched
。我想要的是按特定順序顯示模型:首先草稿,然後啓動,然後啓動。我不想將我的屬性命名爲0_draft
,1_launching
,2_launched
,因爲這將成爲一個問題;我需要清晰的值在我的數據庫。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()
這顯然是行不通的;但有沒有辦法做到這一點?