Django упорядочивание случайным образом при использовании объединения
У меня есть одно приложение Django, когда я делаю случайное упорядочивание, оно работает, используя order_by('?')
Но не работает, когда я применяю случайное упорядочивание к объединенному набору запросов.
queryset = (queryset.filter(city__istartswith=location).order_by('?')).
union(queryset.filter(Q(city__icontains=location) |
Q(town__icontains=location) |
Q(post_area__icontains=location) |
Q(street__icontains=location) |
Q(country__icontains=location) |
Q(agency__operating_areas__icontains=location)).order_by('?'))
В моем случае, если я ищу с городом Хельсинки, то если он приходит в поле город, то его запись отображается первой, но в случайном порядке, другая запись также приходит из других полей, она также устанавливается в случайном порядке.
Например*: Поиск с городом "Хельсинки". Тогда есть четыре записи, в которых город агентства - "Хельсинки", тогда он будет всегда первым, но в случайном порядке все время, а для других записей - в случайном порядке.
[{
"id": 1,
"city": "Helsinki",
"Name": "Abhishek",
},
{
"id": 2,
"city": "Helsinki",
"Name": "Urvesh",
},
{
"id": 3,
"city": "Helsinki",
"Name": "Dhruvil",
},
{
"id": 4,
"city": "Helsinki",
"Name": "Akshat",
},
{
"id": 5,
"town": "Helsinki",
"Name": "Akshat",
},
{
"id": 6,
"country": "Helsinki",
"Name": "Akshat",
},
{
"id": 7,
"street": "Helsinki",
"Name": "Akshat",
},
{
"id": 8,
"town": "Helsinki",
"Name": "Akshat",
}]
Пожалуйста, помогите мне в этом, как я могу сделать случайный поиск в объединении, Пожалуйста, дайте мне лучшие решения относительно этого.
Заранее спасибо.