Esiste un modo semplice per sovrascrivere DjangoJSONEncoder.ensure_ascii
e impostarlo su False
o produrre testo non ASCII in django.http.JsonResponse
in un altro modo?Creazione di UTF-8 JsonResponse in Django
risposta
EDIT:
O se si tende al formato UTF-8, usare al posto di di Django JsonResponse():
return HttpResponse(json.dumps(response_data, ensure_ascii=False), content_type="application/json")
o
return JsonResponse(json.dumps(response_data, ensure_ascii=False), safe=False)
altro su safe=False
HERE
VECCHIO:
Non è necessario a qualunque alter.
Sebbene Django crei dati JSON in ASCII (da UTF-8), Javascript lo decodificherà automaticamente su UTF-8.
non ho trovato alcun modo meglio ancora che per utilizzare un quadro di REST già installato:
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)
ma non mi piace molto. E 'molto più complicato di JsonResponse
: https://stackoverflow.com/a/24411716/854477
Dovresti metterlo come parte della tua domanda originale. – masnun
È una soluzione che ho deciso di condividere e provare contemporaneamente a cercarne una migliore. –
Per mantenere JsonResponse compatibile con e retrocompatibile, l'abbiamo aggiunto/sostituito/implementato in django-compat. Forse questo aiuta qualcuno ora o in futuro ...
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. Utilizzare JSONResponse per serializzare un QuerySet in Django 1.7?
- 2. Creazione matrice JSON in Django
- 3. Django non si crea con utf8
- 4. Creazione di ricerche campo personalizzate in Django
- 5. Creazione di superuser in django-nonrel
- 6. Disabilita la creazione di sessioni in Django
- 7. Converti latin1 in UTF8
- 8. stampa utf8 in glib
- 9. UTF8 in elaborazione in C
- 10. Creazione modulo django su init
- 11. Creazione di molti oggetti utilizzando django-polimorfico
- 12. Utilizzo di file e utf8 in PHP
- 13. Creazione di un modulo Aggiungi utente in Django
- 14. creazione del mio processore di contesto in django
- 15. Estensione del profilo utente in Django. Admin creazione di utenti
- 16. Creazione di filtri personalizzati per list_filter in Django Admin
- 17. Come usare Django's assertJSONEqual per verificare la risposta della vista restituendo JsonResponse
- 18. modulo php invia utf8?
- 19. PHP Utf8 decodifica Problema
- 20. Codifica UTF8 Java
- 21. UTF8 Decodifica con NSString
- 22. PDFTK problemi fill_form utf8
- 23. C# UTF8 Lettura/emissione
- 24. Java + Mysql UTF8 Problema
- 25. Django REST Exceptions
- 26. mb_strtolower e UTF8 stringhe
- 27. Creazione oggetto Django e sequenze Postgres
- 28. codifica knitr e UTF8
- 29. PHP preg_split utf8 caratteri
- 30. oggetto modello di Django con la creazione di chiave esterna
Grazie per il suggerimento, ma preferisco la leggibilità rispetto alla retrocompatibilità leggermente migliore di cui non ho bisogno nel mio caso. Inoltre, UTF-8 è raccomandato in RFC 7159. –
Controlla il mio post editato. – Yaaaaaaaaaaay
Grazie. Puoi spostare la parte aggiunta all'inizio? –