{"action":"created","issue":{"url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/3908","repository_url":"https://api.github.com/repos/tomchristie/django-rest-framework","labels_url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/3908/labels{/name}","comments_url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/3908/comments","events_url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/3908/events","html_url":"https://github.com/tomchristie/django-rest-framework/pull/3908","id":131980070,"number":3908,"title":"Fixed _force_text_recursive typo","user":{"login":"kostya0shift","id":2418596,"avatar_url":"https://avatars.githubusercontent.com/u/2418596?v=3","gravatar_id":"","url":"https://api.github.com/users/kostya0shift","html_url":"https://github.com/kostya0shift","followers_url":"https://api.github.com/users/kostya0shift/followers","following_url":"https://api.github.com/users/kostya0shift/following{/other_user}","gists_url":"https://api.github.com/users/kostya0shift/gists{/gist_id}","starred_url":"https://api.github.com/users/kostya0shift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kostya0shift/subscriptions","organizations_url":"https://api.github.com/users/kostya0shift/orgs","repos_url":"https://api.github.com/users/kostya0shift/repos","events_url":"https://api.github.com/users/kostya0shift/events{/privacy}","received_events_url":"https://api.github.com/users/kostya0shift/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/tomchristie/django-rest-framework/labels/Needs%20information","name":"Needs information","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-07T16:01:09Z","updated_at":"2016-02-10T17:36:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/tomchristie/django-rest-framework/pulls/3908","html_url":"https://github.com/tomchristie/django-rest-framework/pull/3908","diff_url":"https://github.com/tomchristie/django-rest-framework/pull/3908.diff","patch_url":"https://github.com/tomchristie/django-rest-framework/pull/3908.patch"},"body":"Looks like a typo. \r\nSteps to reproduce:\r\n\r\n    >>> from django.utils.translation import ugettext_lazy as _\r\n    >>> from rest_framework.exceptions import _force_text_recursive\r\n    >>> _force_text_recursive(_(\"fdsf\"))\r\n    'fdsf'\r\n    >>> _force_text_recursive({'a': _(\"fdsf\")})\r\n    {'a': <django.utils.functional.lazy.<locals>.__proxy__ object at 0x10ba73e80>}"},"comment":{"url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/comments/182495847","html_url":"https://github.com/tomchristie/django-rest-framework/pull/3908#issuecomment-182495847","issue_url":"https://api.github.com/repos/tomchristie/django-rest-framework/issues/3908","id":182495847,"user":{"login":"kostya0shift","id":2418596,"avatar_url":"https://avatars.githubusercontent.com/u/2418596?v=3","gravatar_id":"","url":"https://api.github.com/users/kostya0shift","html_url":"https://github.com/kostya0shift","followers_url":"https://api.github.com/users/kostya0shift/followers","following_url":"https://api.github.com/users/kostya0shift/following{/other_user}","gists_url":"https://api.github.com/users/kostya0shift/gists{/gist_id}","starred_url":"https://api.github.com/users/kostya0shift/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kostya0shift/subscriptions","organizations_url":"https://api.github.com/users/kostya0shift/orgs","repos_url":"https://api.github.com/users/kostya0shift/repos","events_url":"https://api.github.com/users/kostya0shift/events{/privacy}","received_events_url":"https://api.github.com/users/kostya0shift/received_events","type":"User","site_admin":false},"created_at":"2016-02-10T17:36:18Z","updated_at":"2016-02-10T17:36:18Z","body":"Something like this.  \r\n\r\n    >>> from rest_framework.exceptions import ValidationError\r\n    >>> from django.utils.translation import ugettext_lazy as _\r\n\r\nBefore:\r\n\r\n    >>> raise ValidationError({'__all__': _('Blah blah')})\r\n    Traceback (most recent call last):\r\n      File \"<input>\", line 1, in <module>\r\n    rest_framework.exceptions.ValidationError: {'__all__': <django.utils.functional.lazy.<locals>.__proxy__ object at 0x1052aad68>}\r\n\r\n\r\nAfter:\r\n\r\n    >>> raise ValidationError({'__all__': _('Blah blah')})\r\n    Traceback (most recent call last):\r\n      File \"<input>\", line 1, in <module>\r\n    rest_framework.exceptions.ValidationError: {'__all__': 'Blah blah'}\r\n"}}