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

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top