# One way to run this example is to do the following:

# On the command line:

> python manage.py makemigrations
> python manage.py migrate
> python manage.py shell

# Then in the shell, run the following commands:

>>> from testapp.models import *
>>> ModelB.objects.filter(name='').select_related('model_a').defer('model_a__name')
>>> ModelA.objects.filter(name='').select_related('model_b').defer('model_b__name')

# Running the third command will result in an error similar to the following:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 116, in __repr__
    data = list(self[:REPR_OUTPUT_SIZE + 1])
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 141, in __iter__
    self._fetch_all()
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 966, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/query.py", line 222, in iterator
    only_load = self.query.get_loaded_field_names()
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1821, in get_loaded_field_names
    self.deferred_to_data(collection, self.get_loaded_field_names_cb)
  File "/home/fahammed/Documents/django_defer_bug/venv/local/lib/python2.7/site-packages/django/db/models/sql/query.py", line 596, in deferred_to_data
    cur_model = source.rel.to
AttributeError: 'RelatedObject' object has no attribute 'rel'
