【发布时间】:2017-05-04 19:05:24
【问题描述】:
我正在尝试在表格中订购联系人,但我遇到了一些问题,我在这个 SO 问题中找到了一个很好的解决方案,也许这是一个过度杀戮,但我试图通过 @ 做到这一点987654322@ 所以我只是用这个来影响我的休息视图,好的,这是我对这个排序的解决方案:
filter_date = self.request.query_params.get('filter_date', None)
case_sql = '(case when status="Client" ' \
'then 1 when status="Contacted" ' \
'then 2 when status="Qualified" ' \
'then 3 when status="Virgin" then 4 end)'
if filter_date is not None:
queryset = queryset.filter(next_action_date=filter_date).extra(select={'status': case_sql},
order_by=['status'])
我这样做是因为我不想更改我的数据库字段,就像我说我只想影响我的休息视图一样,所以问题是,我做这个过滤器是否错误所有这些设置都是错误的默认?
模型字段:
status = models.CharField(max_length=10, choices=LeadContactConstants.STATUSES, default=LeadContactConstants.STATUS_PRISTINE)
以及该字段的选择:
class LeadContactConstants(object):
STATUS_PRISTINE = "PRISTINE"
STATUS_CONTACTED = "CONTACTED"
STATUS_QUALIFIED = "QUALIFIED"
STATUS_CLIENT = "CLIENT"
STATUSES = ((STATUS_PRISTINE, "Virgin"),
(STATUS_CONTACTED, "Contacted"),
(STATUS_QUALIFIED, "Qualified"),
(STATUS_CLIENT, "Client"))
【问题讨论】:
标签: python django django-rest-framework