DjangoJSONEncoder.ensure_ascii
を無効にしてFalse
に設定するか、django.http.JsonResponse
に他の方法で非ASCII文字を出力する簡単な方法はありますか?DjangoでUTF-8 JsonResponseを作成する
答えて
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=False
HERE
OLD:
あなたは、ALTER何でもする必要はありません。
DjangoはJSONデータをASCII形式(UTF-8から)で作成しますが、Javascriptは自動的にUTF-8にそれをデコードします。
私はすでにインストール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は
あなたは元の質問の一部としてそれを置くべきです。 – masnun
これは私が共有し、より良いものを探してみることを決めた解決策です。 –
JsonResponseを互換性のために/ backported/django-compatに実装しました。たぶん、これは誰かが現在または将来に役立つかもしれません...
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)
- 1. Django - JsonResponseのサーバーコードの応答
- 2. Django Rest FrameworkまたはJsonResponse
- 3. Django JsonResponse返信データなし
- 4. Django - POST取得後にJsonresponseを表示
- 5. jqueryのdjangoのJSONResponse()結果のループ
- 6. は、Djangoのテスト・データベースはUTF8
- 7. DjangoビューでDjango TimeFieldを作成する
- 8. このJsonResponseで
- 9. 特別ジャンゴでJSONレスポンスを使ってDjangoのjsonresponse
- 10. DjangoソースコードのUTF8文字
- 11. DjangoのユニットテストでJsonResponseでキーと値のペアにアクセス
- 12. Django - 同じクラスインスタンスを使用してPdfとJsonResponseを返す
- 13. Django JsonResponseは重複したオブジェクトを時々送信します。
- 14. SyntaxError:missing; JSONResponse
- 15. のpython 3.6 JsonResponse問題
- 16. Djangoテンプレートタグスペースを作成する
- 17. Django - ユーザークラッシュを作成する
- 18. Djangoチャットアプリを作成する
- 19. Djangoデータベースを作成する
- 20. JavascriptのUTFコードからUTF8文字列を作成する
- 21. なぜutf8はMongodb + mongoengine + djangoで動作していないのですか?
- 22. Django makemessagesエラー不明なエンコーディング "utf8"
- 23. Djangoでカテゴリツリーを作成するには?
- 24. djangoでURLを作成する方法
- 25. Djangoでカスタムオールテンプレートを作成する012
- 26. Djangoでプルダウンメニューを作成するには?
- 27. djangoで新規アプリケーションを作成する
- 28. Django Admin:ブラウザでユーザを作成する
- 29. django-datatables-viewでフィルタを作成する
- 30. Djangoで階層ビューを作成する
提案していただきありがとうございますが、私は私の場合にはまったく必要としない後方互換性を若干上回ることをお勧めします。また、RFC 7159でUTF-8が推奨されています。 –
編集した投稿をチェックしてください。 – Yaaaaaaaaaaay
ありがとうございます。追加された部分を最初に移動できますか? –