How to add conditions in Q objects search

Viewed 47

how do i filter my objects if user entered product_length 10 than my objects should return length is greater than equal to 10 for example i am using Q objects to filter out my data.

in my views.py

def search(request):
    query=request.GET.get("q").lower()

    post = CreateIndustrialPost.objects.filter(
        Q(product_length__icontains=query,admin_approval=True,user_remove_post=False)
       ).values()

in this it returns all data i want to filter as above mention.

here is my models.py

class CreateIndustrialPost(models.Model):
    product_length = models.IntegerField(max_length=1000,blank=True)
    user_remove_post = models.BooleanField(default=False)
    admin_approval = models.BooleanField(default=False)

for example what i want is if user search product_length = 10 than i want to show result in which product_length be should greater than 10 or equal to 10.

1 Answers

You can use gte which means greater than or equal. Like this:

def search(request):
    query=request.GET.get("q").lower() # query = 10 for example

    post = CreateIndustrialPost.objects.filter(
        Q(product_length__gte=query, admin_approval=True, user_remove_post=False)
    ).values()
Related