#24612: Confusing error message when using only/defer through deleted related
field
-------------------------------------+-------------------------------------
Reporter: Naddiseo | Owner: lukawoj
Type: | Status: assigned
Cleanup/optimization |
Component: Database layer | Version: 1.8
(models, ORM) |
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Comment (by lukawoj):
On version 1.9.dev20150602231717 I get this exception:
{{{
Traceback (most recent call last):
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\tests\defer\tests.py",
line 280, in test_defer_only
list(Message.objects.all().only('participants__user__username'))
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\query.py",
line 258, in __iter__
self._fetch_all()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\query.py",
line 1063, in _fetch_all
self._result_cache = list(self.iterator())
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\query.py",
line 52, in __iter__
results = compiler.execute_sql()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 835, in execute_sql
sql, params = self.as_sql()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 384, in as_sql
extra_select, order_by, group_by = self.pre_sql_setup()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 48, in pre_sql_setup
self.setup_query()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 39, in setup_query
self.select, self.klass_info, self.annotation_col_map =
self.get_select()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 196, in get_select
for c in self.get_default_columns():
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 504, in get_default_columns
only_load = self.deferred_to_columns()
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\compiler.py",
line 772, in deferred_to_columns
self.query.deferred_to_data(columns,
self.query.get_loaded_field_names_cb)
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\query.py",
line 684, in deferred_to_data
callback(target, model, values)
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\query.py",
line 1804, in get_loaded_field_names_cb
target[model] = {f.attname for f in fields}
File
"C:\dev\django_con\django_sprint_2015\django_sprint\django\django\db\models\sql\query.py",
line 1804, in <setcomp>
target[model] = {f.attname for f in fields}
AttributeError: 'ManyToOneRel' object has no attribute 'attname'
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/24612#comment:4>
Django <https://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 unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/066.398ba40930b783bb622d67f652519289%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.