【发布时间】:2021-12-28 05:49:54
【问题描述】:
我有一个 django 应用程序,我在其中从 first_name 和 last_name 搜索名称。 使用 Q 标签对我有用。
from django.db.models import Q
def find_user_by_name(query_name):
qs = User.objects.all()
for term in query_name.split():
qs = qs.filter( Q(first_name__icontains = term) | Q(last_name__icontains = term))
return qs
但我遇到了一个问题,即订购的数据不是我想要的。
例如:search_word = 'Kia' 我搜索后得到的结果是:
{
"first_name": "Katja",
"last_name": "Tukiainen",
},
{
"first_name": "Kia",
"last_name": "Reijonen",
},
{
"first_name": "Sanna",
"last_name": "Kiander",
}
]
但我想要一个首先以 Kia 开头的结果,结果如下:
{
"first_name": "Kia",
"last_name": "Reijonen",
},
{
"first_name": "Katja",
"last_name": "Tukiainen",
},
{
"first_name": "Sanna",
"last_name": "Kiander",
}
]
请帮助我解决这个问题,我尝试使用 startswith 进行此操作,但不适用于我。 提前致谢。
【问题讨论】:
标签: python-3.x django django-views