How can I get all the objects in a Django model that have a specific value for a ForeignKey field?
django, django-queryset
Solution
You can use a double underscore in the keyword passed to `filter()` to access fields in a foreign key relationship. Like this:
Item.objects.filter(parent__name="xyz")
Django documentation
Problem
I have a Model with a Foreign Key of "Parent" ``` class Item(models.Model): parent = models.ForeignKey(Parent) ``` This is the FK model ``` class Parent(models.Model): name = models.CharField(blank=True, max_length=100) def __unicode__(self): return str(self.name) ``` I am trying to run a query that gets all Items with a parent of "xyz" I get nothing ``` Item.objects.filter(parent="xyz") ``` When I try: ``` Item.objects.filter(parent.name="xyz") ``` Or: ``` Item.objects.filter(str(parent)="xyz") ``` I get an error: ``` SyntaxError: keyword can't be an expression ``` What is the proper way to do this?