У меня есть модель,сортировать QuerySet Django на основе значений в поле выбора
class Example(models.Model):
MY_CHOICES = (
("yes", _("Yes")),
("no", _("NO")),
("not_sure", _("Not sure")),
)
name = models.CharField(max_length=200, verbose_name=_('Name'))
status = models.CharField(max_length=100,choices=MY_CHOICES,default='yes')
Мне нужно, чтобы получить набор запросов, отсортированный в методе get_queryset, т.е.
def get_queryset(self, request):
qs = self.model._default_manager.get_queryset()
order = ['yes', 'no', 'not_sure']
qs = #CODE TO ORDER THE S HERE BASED ON order.
return qs
* Возвращаемое значение, которое мне нужно, это QuerySet, а не отсортированный список. * qs нужно сортировать на основе значения статуса в соответствии с порядком «да», «нет», «не_суре».
Обращаем ваше внимание, что QS зависит от значения атрибута объекта (то есть значения статуса). В объектах порядка статус = «да» первый следуют «нет» и «not_sure»
сделать заказ поле выбора, а затем отсортировать в соответствии с выбором, где первое значение будет 1,2,3 и так далее, как Order_choice = ((1, да), (2, нет), (3, not_sure)) –
Thanx, Но здесь мне нужно значение db для тех же «да», «нет» и «не_суре». Это сохранит числа в db. :( –
не будет ли мета-упорядочение достаточным? 'Class Meta: ordering = ['status']'. Есть ли конкретная причина для этого в 'get_queryset'? – Pynchia