Opened 7 years ago
Last modified 7 years ago
#29096 closed Bug
JSONField() as base_field for ArrayField() for creating an object array — at Initial Version
Reported by: | Jim Biggs | Owned by: | nobody |
---|---|---|---|
Component: | contrib.postgres | Version: | 2.0 |
Severity: | Normal | Keywords: | serialization, JSONField, ArrayField |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Current Environment:
- Latest Django-2
- Latest Django Rest Framework
- PostgreSQL-9.5
- Ubuntu-16.04
My understanding of the JSONField() is that it is a field container for a single JSON object. My use-case requires an array of objects. So, I created an ArrayField() that nests a JSONField() as its model base_field -- as shown in the code block, below:
questions = ArrayField(JSONField(null=True, blank=True, default=dict), max_length=200, blank=True, default=[])
Everything seems to work fine with the exception of the JSON object being stringified, as shown below:
"questions": [ "{ \"question\": \"What is the answer to everything?\", \"answer\": \"42\" }", "{ \"question\": \"What year is it?\", \"answer\": \"2018\" }" ],
I believe the inserted backslashes (\) are a result of the serialization process. My question is whether there is a better way for me to define this object array model field?
Regards... Jim