JSONField(binary=True) represents using binary strings, which JSONRenderer does not support. · Issue #4185 · encode/django-rest-framework (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
from rest_framework import serializers
class TestSerializer(serializers.Serializer): json = serializers.JSONField()
s = TestSerializer(data={'json': "{broken JSON"}) assert s.is_valid() is False
Expected behavior
Invalid JSON should result in is_valid()
returning False
.
Actual behavior
is_valid()
returns True
Specifying binary=True
for the field definition results in the desired behavior for serialization, but causes deserialization to fail on Python 3.