如何使用多个模型字段搜索项目

2024-04-20 00:03:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我的搜索功能当前看起来像:

query = request.GET.get('q')
if query:
    item_list = item_list.filter(title__icontains=query) | item_list.filter(
        bike__brand__name__icontains=query) | item_list.filter(
        accessory__brand_accessory__name__icontains=query) | item_list.filter(
        bikepart__brand_part__name__icontains=query)

我可以使用单个字段筛选项目,但我正在寻找一个可以使用多个字段查找项目的筛选器。 我的产品分为4种不同的型号Item模型是一个主模型,它保存连接到此主模型的其他模型的所有标题,这些模型是:BikeAccessoryBikePart

我正在寻找使用(title__icontains=query + bike__brand__name__icontains=query)(title__icontains=query + accessory__brand_accessory__name__icontains=query)(title__icontains=query + bikepart__brand_part__name__icontains=query)进行过滤,但我仍然希望能够只使用标题或品牌来查找项目。实现这一目标的最佳方式是什么