#14694: defer() doesn't work with reverse relations
------------------------------------------+---------------------------------
 Reporter:  sayane                        |       Owner:  nobody    
   Status:  new                           |   Milestone:  1.3       
Component:  Database layer (models, ORM)  |     Version:  SVN       
 Keywords:                                |       Stage:  Unreviewed
Has_patch:  0                             |  
------------------------------------------+---------------------------------
 It's impossible to defer REVERSED relation. I'm not able to reproduce
 whole queryset, because it's generated automatically.
 {{{
 Traceback:
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/core/handlers/base.py" in get_response
   109.                         response = callback(request,
 *callback_args, **callback_kwargs)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/views/generic/base.py" in view
   52.             return self.dispatch(request, *args, **kwargs)
 File "/home/sayane/Programowanie/qcr2/unit/../qcr/core/ajax/views.py" in
 dispatch
   55.         resp = super(AjaxView, self).dispatch(request, *args,
 **kwargs)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/views/generic/base.py" in dispatch
   73.         return handler(request, *args, **kwargs)
 File "/home/sayane/Programowanie/qcr2/unit/../qcr/core/ajax/store.py" in
 post
   101.         total = self.queryset.count()
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/query.py" in count
   327.         return self.query.get_count(using=self.db)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/query.py" in get_count
   391.             obj.add_subquery(subquery, using=using)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/subqueries.py" in add_subquery
   222.         self.subquery, self.sub_params =
 query.get_compiler(using).as_sql(with_col_aliases=True)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/compiler.py" in as_sql
   58.         self.pre_sql_setup()
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/compiler.py" in pre_sql_setup
   29.             self.fill_related_selections()
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/compiler.py" in fill_related_selections
   578.                     opts=f.rel.to._meta, as_pairs=True)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/compiler.py" in get_default_columns
   237.         only_load = self.deferred_to_columns()
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/compiler.py" in deferred_to_columns
   666.         self.query.deferred_to_data(columns,
 self.query.deferred_to_columns_cb)
 File "/home/sayane/Programowanie/virtenv/dj13/lib/python2.6/site-
 packages/django/db/models/sql/query.py" in deferred_to_data
   540.                 cur_model = opts.get_field_by_name(name)[0].rel.to

 Exception Type: AttributeError at /a/case/stores/case/
 Exception Value: 'RelatedObject' object has no attribute 'rel'
 }}}

 When trying with simple query, it doesn't return any results:
 {{{
 In [7]: Case.objects.select_related('info')
 Out[7]: [<Case: test/01>]

 In [8]: Case.objects.select_related('info').defer('info__requirements')
 Out[8]: []

 In [9]:
 Case.objects.select_related('info').defer('info__requirements').count()
 Out[9]: 1
 }}}

-- 
Ticket URL: <http://code.djangoproject.com/ticket/14694>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to