I have a user model with first_name and last_name in it.
class User(AbstractUser):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
address = models.ForeginKey(Address, on_delete=models.CASECAD, related_name='address')
department = models.CharField(max_length=50)
...
And Suppose there are the data in it:
ID first_name last_name
1 FightWith Code
2 Jon Doe
3 John Cena
And another model with Address:
Class Address(models.Model):
city = models.CharField(max_length=100)
state = models.CharField(max_length=100)
country = models.CharField(max_length=100)
...
With following data in it:
ID user City
4 1 Ohio
5 2 Delhi
6 3 London
I want to search them based on their fields, these fields like first_name
and city/state/country
or last_name
and city/state/country
using Boolean Search technique like following:
John AND (Ohio OR London)
or
(Jon OR John) AND (Delhi OR London)
Some what similar to those. I am sure we can do this using Q from django.db.models
and operator
module but I am not sure how.
Has anyone done this and can guide to do the same here then that would be awesome.
If you are considering a boolean search and your query can be from multiple field, you can try django full text search queries. https://docs.djangoproject.com/en/4.1/ref/contrib/postgres/search/