Форум сайта python.su
привет
class Car(models.Model): name = models.CharField(...) ....
Car.objects.filter(...).order_by('name')
Офлайн
вообще order_by('-name') будет сортировать в обратном порядке (минус перед именем поля),
но я не думаю, что вас это устроит - вы бы наверное хотели чтобы и кириллица и латиница при этом сами по себе были бы сортированы в естественном порядке (т.е. кириллица А->Я, а не наоборот)?
С ходу красивого решения не приходит в голову.
Навскидку - либо на лету делать анализ текстового поля, либо завести отдельное поле для сортировки, куда прописывать индекс при записи и при выборке сортировать по нему.
Офлайн
да. -name мне не катит.
order('name') сортирует A-zА-я. А мне надо А-яA-z. Если стандартными средствами нельзя, то да, наверное добавлю поле. Типа ru_eng
Офлайн
Вариант сделать две выборки, первую
latin="abcdef" Car.objects.filter(name__istartswith__in=latin).order_by("name")
Офлайн
спасибо. То что надо. А как объеденить два кверисета? Пробовал extend. Но у кверистеа вроде нет extend'a
Офлайн
а кверисет - это итератор,
import itertools x=(i for i in xrange(10) ) y=(i for i in xrange(20,30,2)) for i in itertools.chain(x,y): print i
Офлайн
у вас простые кверисеты (модель одна, без экстра), так что просто qs = qs1 | qs2
Офлайн