#27183: JSONField escaped in admin interface during normal usage
-------------------------------+--------------------
     Reporter:  sjuxax         |      Owner:  nobody
         Type:  Uncategorized  |     Status:  new
    Component:  Uncategorized  |    Version:  1.10
     Severity:  Normal         |   Keywords:
 Triage Stage:  Unreviewed     |  Has patch:  0
Easy pickings:  0              |      UI/UX:  0
-------------------------------+--------------------
 The line of code at
 
https://github.com/django/django/blob/68de48c96328e13d5dbdb1f3006e4a1ca74f3c34/django/contrib/postgres/forms/jsonb.py#L45
 results in the escaping of a plain JSON string. That's because the string
 is already in valid JSON when run through json.dumps. This is user-facing
 and visible in the Django admin interface when a JSONField is edited.

 With the current code, the line in the admin looks like this:
 http://imgur.com/fw29t1c.jpg

 If we just return value instead of json.dumps(value), we get this:
 http://imgur.com/msBT1tI.jpg

 (Someone may want to attach those jpgs directly to this report for
 posterity; I don't know what the convention is on this bug tracker)

 In fact, looking at the code now, I wonder if we just need to swap lines
 44 and 45. It would seem that if a value is invalid JSON, as the check on
 line 43 implies, that we *should* be dumping it through the json
 serializer, whereas if it's valid JSON, we shouldn't. Maybe the logic just
 got swapped there.

 #25532 deals with a similar topic.

--
Ticket URL: <https://code.djangoproject.com/ticket/27183>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/049.43ad710acd22f9036ee3755963434575%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to