Мне нужно создать простой поиск имени пользователя. Я хочу, чтобы он упорядочивался по именам пользователей, которые начинаются с запроса, а затем после имен пользователей, содержащих строку.Django istartswith и содержит в том же запросе?
, если у меня есть список имен пользователей, как этот
- джон
- матовый
- атома
- atyler
- mrmat
Хочу заказать вот так:
- атом
- atyler
- матовый
- mrmat
Как бы достичь этого в одном запросе? Сейчас у меня есть
users = User.objects.filter(Q(name__istartswith='at') | Q(name__icontains='at'))
Но это возвращает:
- матовый
- mrmat
- atyler
- атом
Я не думаю, что вы могли бы заказать это. Только один заказ может быть применен к запросу. Вам нужен список для объединения двух запросов для сохранения порядка. –
Есть ли способ добавить постоянное значение к результатам из istartwith и значков? Где константа будет одинаковой для всех istartswith, а другая константа содержит и сортирует по ней в конце? – Tyler
Это, по сути, то, что я ищу http://stackoverflow.com/questions/7021097/need-to-annotate-django-queryset-based-on-which-q-object-was-found – Tyler