7
Create a dict with a dynamic key generated from given_field
and then unpack it using **
to generate keywords arguments.
def search_engine(model, given_field, text):
# Stuff
filters = {
given_field+'__icontains': text
}
result = model.objects.filter(**filters)
return result
0
This code solved my problem:
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})
Source:stackexchange.com