python - django项目中搜索功能的实现

标签 python django python-3.x django-models

如何使用多个关键字在 django 中查询数据库

我有一个具有这样的类的作业模型

class Job(models.Model):
 title = models.CharField(max_length=100)

我想查询 jobs_job 数据库以实现搜索功能,以便

def search(request):
 if request.method == "GET":
   search_terms = request.GET['title']
   search_terms = search_terms.split(',')

   jobs = Job.objects.filter(title__contains=search_terms[0])

问题是我只能将一项传递给 contains 方法,

如何使用多个单词搜索职位模型标题属性

最佳答案

例如你可以这样做

from django.db.models import Q

def search(request):
    if request.method == "GET":
      search_terms = request.GET['title'] 
      search_terms = search_terms.split(',')
      #get rid of duplicates
      search_terms = set(search_terms)
      queryargs = [Q(title__contains=i) for i in search_terms]
      jobs = Job.objects.filter(*queryargs)

关于python - django项目中搜索功能的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34976247/

相关文章:

python - 如何将 Django Form Class 变量传递给嵌套类 Meta?

python - 如何在 ViewSet 中返回 403 而不是 404

python - 按模式查找 boolean 掩码

python - Django - 修改简单搜索结果的外观

python - 如何从字典初始化 SimpleNamespace

python : Using Decorators to write Logs on a file

python - 将字典中的多个数组写入列

python - 将单元格值与 Pandas 中的整数进行比较,给出类型错误

python - houghcircles - 寻找参数

python - 使用 django 为一个模型的属性使用多个输入字段