упорядочение с использованием синтаксиса SQL CASE WHEN / THEN django

Я пытаюсь заказать контакты в таблице, и я столкнулся с некоторыми проблемами, я нашел приятное решение в этом вопросе SO , возможно, это для этого больше, но я пытаюсь сделать это над restapi поэтому я только влияя на мой взгляд на отдых с этим, хорошо, так что это мое решение для этого заказа:

 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']) 

Я делаю это, потому что я не хочу менять свое поле db, например, я сказал, что хочу только повлиять на мой взгляд на отдых, поэтому вопрос в том, что я делаю этот фильтр неправильно, все это все настройки неправильны по умолчанию?

  • Как запускать команды управления Django в Google Cloud SQL
  • Как получить IP-адрес пользователя в django?
  • RemovedInDjango18 Предупреждение: создание ModelForm без атрибута «fields» или атрибута «exclude» устарело
  • Расширенная фильтрация Django Tastypie: как выполнять сложные поисковые запросы с объектами Q
  • Как вернуть пользовательский JSON в Django REST Framework
  • Как получить доступ к request.user в методе класса Piston
  • Поля модели:

     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")) 

  • разные поля для добавления и изменения страниц в admin
  • в чем разница между объектами python и объектами json?
  • Установка PIL с пипсом
  • NotImplementedError в django-регистрации при регистрации пользователя
  • Регистрация Django Redux: как изменить уникальный идентификатор от имени пользователя до электронной почты и использовать электронную почту в качестве логина
  • django 1.4 как автоматически получить часовой пояс пользователя от клиента
  • One Solution collect form web for “упорядочение с использованием синтаксиса SQL CASE WHEN / THEN django”

    Этот вопрос, с которым вы связались, – с 2012 года. С тех пор многое изменилось, например, включение ….. CASE / WHEN в джанго .

    Выражение Case () аналогично выражению if … elif … else в Python. Каждое условие в предоставленных объектах When () оценивается по порядку, пока не получится истинное значение. Получается выражение результата из возвращаемого объекта When ().

    Вся идея заключается в том, что вам не нужно писать сложные запросы, как иногда приходилось раньше.

    Стандартная практика заключается в создании аннотации с CASE / WHEN, а затем ее использование в аннотации в порядке

    Python - лучший язык программирования в мире.