Opened 20 years ago
Closed 20 years ago
#588 closed defect (invalid)
kwarg error when using get_object across join
| Reported by: | Boffbowsh | Owned by: | Adrian Holovaty |
|---|---|---|---|
| Component: | Metasystem | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | paul.bowsher@… | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
class Product (meta.Model): name = meta.TextField() class Variant (meta.Model): product = meta.ForeignKey(Product)
>>> p = products.get_object(variant__id__exact=1)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/lib/python2.4/site-packages/django/utils/functional.py", line 3, in _curried
return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items()))
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1094, in function_get_object
obj_list = function_get_list(opts, klass, **kwargs)
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1134, in function_get_list
return list(function_get_iterator(opts, klass, **kwargs))
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1116, in function_get_iterator
select, sql, params = function_get_sql_clause(opts, **kwargs)
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1313, in function_get_sql_clause
tables2, join_where2, where2, params2, _ = _parse_lookup(kwargs.items(), opts)
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1301, in _parse_lookup
_throw_bad_kwarg_error(kwarg)
File "/usr/local/lib/python2.4/site-packages/django/core/meta/__init__.py", line 1192, in _throw_bad_kwarg_error
raise TypeError, "got unexpected keyword argument '%s'" % kwarg
TypeError: got unexpected keyword argument 'variants__id__exact'
Also tried variant__id__exact, variant__pk etc
Note:
See TracTickets
for help on using tickets.
That doesn't work, because the relationship works the other way.
variants.get_list(product__id__exact=1)