当我进行随机排序时,我有一个 Django 应用程序正在使用order_by('?')
但是当我在union queryset上应用随机排序时不起作用。
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('?'))
在我的例子中,如果我用 city Helsinki搜索,那么如果它出现在city字段中,那么它的记录首先显示,但以随机顺序显示,另一条记录也来自其他字段,它也设置为随机顺序。
例如*:搜索“赫尔辛基”城市。然后有四个记录,其中代理城市是“赫尔辛基”,那么它将始终排在第一位,但始终以随机顺序出现,其他记录以随机顺序出现。
[{
"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",
}]
请帮助我如何在工会中进行随机搜索,请给我最好的解决方案。
提前致谢。