Opened 4 weeks ago
Last modified 3 weeks ago
#36139 closed New feature
Allow expressing JSONObject keys dynamically, as well as explicit pair-values — at Initial Version
Reported by: | john-parton | Owned by: | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
In working towards supporting ABSENT ON NULL
for JSONArray, I did some digging on what it would take to implement it for JSONObject
as well, and essentially, because the init signature consumes all the kwargs
, there's not really a good way to configure its behavior without conflicting with a key definition.
If you could specify the items of a JSONObject positionally, then you get the aforementioned benefit of being able to have kwargs as well without conflicting, but you also get the added benefit of being able to construct objects with non-static keys.
As an example esoteric usage, if you're trying to get the database to omit valid objects for the Elasticsearch DSL, you would almost certainly need to be able to build objects with non-static keys.
For example https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html
The key "user.id" refers to a field in elastic.
See some discussion here: https://github.com/django/django/pull/19097#issuecomment-2611270246
I'll throw together a patch.