Django查询的动态过滤器

时间:2016-08-29 03:44:39

标签: django python-2.7 search

我想在用户提供的字段中搜索。

到目前为止,我有这个:

def search_engine(model, given_field, text):
    # Stuff
    result = model.objects.filter(given_field__icontains=text)
    return result

" given_field"内部过滤器将是函数中给出的参数,它是一个变量。

2 个答案:

答案 0 :(得分:1)

使用从use the index name here | v POST test/test/test?routing=1 { "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch" } 生成的动态密钥创建一个dict,然后使用given_field将其解压缩以生成关键字参数。

**

答案 1 :(得分:0)

此代码解决了我的问题:

def students(request):
    if request.method == 'GET':
        if request.GET.items(): 
        # this condition will check wether we are passing any filters
            filters = {}
            for key, value in request.GET.items():
                if value != '':
                    filters[key] = value
            students = Students.objects.filter(**filters)
            # we can see only filtred students
        else:
            students = Students.objects.all()
            # we can see all students without any filters when we enter in to page 
    return render(request, 'students.html', {'students': students})
相关问题