Hero, Villain >>> q1 = Hero.objects.annotate( ... category_name=F('category__name'), ... ) >>> q1 = q1.values('name', 'category_name') >>> q1 = q1.filter(category_name='spam') >>> q2 = Villain.objects.annotate( ... category_name=F('category__name'), ... ) >>> q2 = q2.values('name', 'category_name') >>> q2 = q2.filter(category_name='egg') >>> q1.union(q2) あ!! これDjango ORM Cookbookで読んだやつだ!!