Opened 19 years ago
Closed 19 years ago
#3444 closed (duplicate)
Symmetrical Many-to-Many all() failing
| Reported by: | Owned by: | Adrian Holovaty | |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Hi, I've noticed that in the current development version, symmetrical many-to-many relationships can call all() AT MOST one time. Using the supplied example supplied in the documentation, I get the following:
>>> from core.models import *
>>> a = Person(name='Anne')
>>> a.save()
>>> b = Person(name='Bill')
>>> b.save()
>>> c = Person(name='Chuck')
>>> c.save()
>>> d = Person(name='David')
>>> d.save()
>>> a.friends.add(b,c)
>>> d.friends.add(a,c)
>>> a.friends.all()
Traceback (most recent call last):
File "<console>", line 1, in ?
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 101, in __repr__
return repr(self._get_data())
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 444, in _get_data
self._result_cache = list(self.iterator())
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 177, in iterator
select, sql, params = self._get_sql_clause()
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 458, in _get_sql_clause
joins2, where2, params2 = self._filters.get_sql(opts)
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 618, in get_sql
joins2, where2, params2 = val.get_sql(opts)
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 669, in get_sql
return parse_lookup(self.kwargs.items(), opts)
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 789, in parse_lookup
joins2, where2, params2 = lookup_inner(path, lookup_type, value, opts, opts.db_table, None)
File "/sw/lib/python2.3/site-packages/Django-0.95-py2.3.egg/django/db/models/query.py", line 890, in lookup_inner
raise TypeError, "Cannot resolve keyword '%s' into field" % name
TypeError: Cannot resolve keyword 'person' into field
>>>
This problem does not exist in pre-0.96 Django distributions. As I am a Django newbie, there's not much I can do, but thanks for taking a look!
Note:
See TracTickets
for help on using tickets.
My bad everyone; please don't hate me for accidentally re-opening old tickets.