我正在尝试找到一种方法来根据数据库对象的 status 变量按顺序显示数据库对象列表。该应用程序是一个订单跟踪应用程序。每个订单都有一个状态:“空闲”、“等待交货”、“准备取货”等。我想显示订单列表,按状态排序。我已经有一个可用的过滤器,但我想知道是否有一种方法可以对整个订单列表进行排序,以便“空闲”订单位于最前面,然后是“等待交货”订单,依此类推。显然,我不能只将 status 添加到 admin.py 文件中的 ordering,因为这会按字母顺序对状态进行排序。
有人知道解决这个问题的简单方法吗?我确定我只是想多了这整件事..
请您参考如下方法:
我最后所做的就是为每个状态名称添加一个字母字符。因为我已经为每个状态取了一个漂亮、简洁的冗长名称,所以我认为它不会对可读性造成太大影响。我不能说这是世界上最好的解决方案,但我相信它是最简单的。
STATUS_OF_ORDER = (
('A_IDLE', 'Not yet ordered'),
('B_SHIP', 'Awaiting delivery'),
('C_PICK', 'Ready for pickup'),
('E_UNAV', 'Unavailable for order'),
('D_BACK', 'Backordered - awaiting delivery'),
('F_CANC', 'Canceled by customer'),
('G_ARCH', 'Fulfilled'),
)
status = models.CharField(max_length=6, choices=STATUS_OF_ORDER,
default='A_IDLE', editable=False)
