filter in django code example

Example 1: filter with different operator in django

from myapp.models import Entry
from django.db.models import Q

Entry.objects.filter(~Q(id=3))

#will return all entries except the one(s) with 3 as their ID

Example 2: Django filters

import django_filters

class ProductFilter(django_filters.FilterSet):
  	# lookup_expr='iexact'
    # lookup_expr='icontains'
    name = django_filters.CharFilter(lookup_expr='iexact')

    class Meta:
        model = Product
        fields = ['price', 'release_date']

Example 3: django-filter

def product_list(request):
    filter = ProductFilter(request.GET, queryset=Product.objects.all())
    return render(request, 'my_app/template.html', {'filter': filter})

Example 4: filter django or

#There is Q objects that allow to complex lookups. Example:
from django.db.models import Q

Item.objects.filter(Q(creator=owner) | Q(moderated=False))

Example 5: django q objects

from django.db.models import Q

obj, created = Person.objects.filter(
    Q(first_name='Bob') | Q(first_name='Robert'),
).get_or_create(last_name='Marley', defaults={'first_name': 'Bob'})

Example 6: filter django or

#It is worth to note that it's possible to add Q expressions.
from django.db.models import Q

query = Q(first_name='mark')
query.add(Q(email='[email protected]'), Q.OR)
query.add(Q(last_name='doe'), Q.AND)

queryset = User.objects.filter(query)