Opened 7 years ago
Closed 7 years ago
#28419 closed New feature (duplicate)
Support for value() usage with PostgreSQL-specific JSONFields
Reported by: | daishi | Owned by: | nobody |
---|---|---|---|
Component: | contrib.postgres | Version: | 1.11 |
Severity: | Normal | 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
This is a feature request for the PostgreSQL-specific JSONField documented here:
https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/#jsonfield
Following from the example starting at:
https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/fields/#key-index-and-path-lookups
It would be great if the extended field naming allowed the following to succeed:
>>> Dog.objects.values('data__breed') Traceback (most recent call last): File "<console>", line 1, in <module> File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method return getattr(self.get_queryset(), name)(*args, **kwargs) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/query.py", line 697, in values clone = self._values(*fields, **expressions) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/query.py", line 692, in _values clone.query.set_values(fields) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1896, in set_values self.add_fields(field_names, True) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1645, in add_fields name.split(LOOKUP_SEP), opts, alias, allow_many=allow_m2m) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1417, in setup_joins names, opts, allow_many, fail_on_missing=True) File "/Users/daishi/.virtualenvs/testdjango/lib/python2.7/site-packages/django/db/models/sql/query.py", line 1385, in names_to_path " not permitted." % (names[pos + 1], name)) FieldError: Cannot resolve keyword 'breed' into field. Join on 'data' not permitted.
I would expect the result to be ['labrador', 'collie']
(or the QuerySet
equivalent thereof).
Change History (1)
comment:1 by , 7 years ago
Component: | Uncategorized → contrib.postgres |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
Type: | Uncategorized → New feature |
Note:
See TracTickets
for help on using tickets.
Duplicate of #28168 and #24747.