I have this
from django.db import models
class Kid(models.Model):
name = models.CharField(max_length=200)
class Toy(models.Model):
name = models.CharField(max_length=200)
owner = models.ForeignKey(Kid)
I have this queryset
kids = Kid.objects.all()
Now i want to filter kids whole toys has name star
in it
and i am not able to decide which filter to apply
kids.filter(toys_set__icontains='star')
Note the
distinct()
method. It is required because kid can have several "star" toys so withoutdistinct()
you will get duplicates in the queryset.If you want to filter kids by number of found toys when use aggregation: