--- a/tests/modeltests/or_lookups/models.py
+++ b/tests/modeltests/or_lookups/models.py
@@ -1,10 +1,10 @@
 """
 19. OR lookups
 
-To perform an OR lookup, or a lookup that combines ANDs and ORs, 
+To perform an OR lookup, or a lookup that combines ANDs and ORs,
 combine QuerySet objects using & and | operators.
 
-Alternatively, use positional arguments, and pass one or more expressions 
+Alternatively, use positional arguments, and pass one or more expressions
 of clauses using the variable ``django.db.models.Q`` (or any object with
 a get_sql method).
 
@@ -13,9 +13,18 @@ a get_sql method).
 
 from django.db import models
 
+class Reporter(models.Model):
+    first_name = models.CharField(maxlength=30)
+    last_name = models.CharField(maxlength=30)
+    email = models.EmailField()
+
+    def __repr__(self):
+        return "%s %s" % (self.first_name, self.last_name)
+
 class Article(models.Model):
     headline = models.CharField(maxlength=50)
     pub_date = models.DateTimeField()
+    reporter = models.ForeignKey(Reporter)
     class Meta:
        ordering = ('pub_date',)
 
@@ -26,13 +35,16 @@ API_TESTS = """
 >>> from datetime import datetime
 >>> from django.db.models import Q
 
->>> a1 = Article(headline='Hello', pub_date=datetime(2005, 11, 27))
+>>> r = Reporter(first_name='John', last_name='Smith', email='john@example.com')
+>>> r.save()
+
+>>> a1 = Article(headline='Hello', pub_date=datetime(2005, 11, 27), reporter=r)
 >>> a1.save()
 
->>> a2 = Article(headline='Goodbye', pub_date=datetime(2005, 11, 28))
+>>> a2 = Article(headline='Goodbye', pub_date=datetime(2005, 11, 28), reporter=r)
 >>> a2.save()
 
->>> a3 = Article(headline='Hello and goodbye', pub_date=datetime(2005, 11, 29))
+>>> a3 = Article(headline='Hello and goodbye', pub_date=datetime(2005, 11, 29), reporter=r)
 >>> a3.save()
 
 >>> Article.objects.filter(headline__startswith='Hello') |  Article.objects.filter(headline__startswith='Goodbye')
@@ -49,6 +61,10 @@ API_TESTS = """
 
 >>> Article.objects.filter(headline__startswith='Hello') & Article.objects.filter(headline__contains='bye')
 [Hello and goodbye]
+
+# Who has written a and a2?
+>>> Reporter.objects.filter(article__id__exact=a1.id) & Reporter.objects.filter(article__id__exact=a2.id)
+[John Smith]
 
 >>> Article.objects.filter(Q(headline__contains='bye'), headline__startswith='Hello')
 [Hello and goodbye]
@@ -65,7 +81,7 @@ API_TESTS = """
 >>> Article.objects.filter(Q(pk=1) | Q(pk=2) | Q(pk=3))
 [Hello, Goodbye, Hello and goodbye]
 
-# Q arg objects are ANDed 
+# Q arg objects are ANDed
 >>> Article.objects.filter(Q(headline__startswith='Hello'), Q(headline__contains='bye'))
 [Hello and goodbye]
 
@@ -81,12 +97,12 @@ Hello and goodbye
 3
 
 >>> list(Article.objects.filter(Q(headline__startswith='Hello'), Q(headline__contains='bye')).values())
-[{'headline': 'Hello and goodbye', 'pub_date': datetime.datetime(2005, 11, 29, 0, 0), 'id': 3}]
+[{'headline': 'Hello and goodbye', 'reporter_id': 1, 'pub_date': datetime.datetime(2005, 11, 29, 0, 0), 'id': 3}]
 
 >>> Article.objects.filter(Q(headline__startswith='Hello')).in_bulk([1,2])
 {1: Hello}
 
-# The 'complex_filter' method supports framework features such as 
+# The 'complex_filter' method supports framework features such as
 # 'limit_choices_to' which normally take a single dictionary of lookup arguments
 # but need to support arbitrary queries via Q objects too.
 >>> Article.objects.complex_filter({'pk': 1})
