How to get more than one field with django filter icontains

django, python, search

Solution

From Django documentation:

"Keyword argument queries – in filter(), etc. – are “AND”ed together. If you need to execute more complex queries (for example, queries with OR statements), you can use Q objects."

from django.db.models import Q
expense.objects.filter(
    Q(name__icontains=q) | Q(amount__icontains=q) | Q(category__icontains=q)
)

I'm not sure about the type of amount and category in your model so icontains may not work on them.

see this link.

Problem

I am trying to compare my query search to all my model fields, but I can't figure how to do it in more than one field. this is my code. ``` expense = Expense.objects.filter(user=request.user.id).order_by('date') q = request.GET['q'] result = expense.filter(name__icontains=q) ``` I want to check in: `name`, `amount`, `category` Thanks in advance

Original source