2016-01-14 13 views

答えて

4

EDIT:あなたはUTF-8形式に傾向がある場合

あるいは、DjangoのJsonResponse()の代わりに使用します。

return HttpResponse(json.dumps(response_data, ensure_ascii=False), content_type="application/json")

または

return JsonResponse(json.dumps(response_data, ensure_ascii=False), safe=False) 

詳細safe=FalseHERE


OLD:

あなたは、ALTER何でもする必要はありません。

DjangoはJSONデータをASCII形式(UTF-8から)で作成しますが、Javascriptは自動的にUTF-8にそれをデコードします。

+0

提案していただきありがとうございますが、私は私の場合にはまったく必要としない後方互換性を若干上回ることをお勧めします。また、RFC 7159でUTF-8が推奨されています。 –

+0

編集した投稿をチェックしてください。 – Yaaaaaaaaaaay

+0

ありがとうございます。追加された部分を最初に移動できますか? –

0

私はすでにインストールRESTフレームワークを利用するためにはまだよりも、任意のより良い方法を見つけることができませんでした:

from rest_framework.decorators import api_view, permission_classes 
from rest_framework.permissions import IsAuthenticatedOrReadOnly 
from rest_framework.response import Response 

from .models import INITIATOR_TYPES 

@api_view(['GET']) 
@permission_classes((IsAuthenticatedOrReadOnly,)) 
def initiator_types(request): 
    data = {t[0]: str(t[1]) for t in INITIATOR_TYPES} 
    return Response(data) 

しかし、私は実際にそれを好きではありません。それはJsonResponseよりもはるかに複雑です:https://stackoverflow.com/a/24411716/854477

+0

あなたは元の質問の一部としてそれを置くべきです。 – masnun

+0

これは私が共有し、より良いものを探してみることを決めた解決策です。 –

1

JsonResponseを互換性のために/ backported/django-compatに実装しました。たぶん、これは誰かが現在または将来に役立つかもしれません...

0
from django.core.serializers.json import DjangoJSONEncoder 
from django.http import JsonResponse 


class MyJsonResponse(JsonResponse): 
    def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, **kwargs): 
     json_dumps_params = dict(ensure_ascii=False) 
     super().__init__(data, encoder, safe, json_dumps_params, **kwargs) 
関連する問題