0

当我进行随机排序时,我有一个 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",
}]


请帮助我如何在工会中进行随机搜索,请给我最好的解决方案。

提前致谢。

4

0 回答 0