Lorsque j'essaie d'envoyer des valeurs dans JsonResponse, l'erreur arrive (l'objet de type QuerySet n'est pas sérialisable JSON)
def ajaxAgent(request): data = CommCenter.objects.values() responseData = { 'status': 'success', 'msg' : data} return JsonResponse(responseData)
3 Réponses :
Vous devrez écrire un sérialiseur de modèle pour sérialiser les valeurs des objets dans JSON qui vous sont renvoyées sous forme de liste lorsque vous récupérez des objets à l'aide de Django ORM. Consultez ce lien pour plus de détails ModelSerializer
Veuillez trouver ici la réponse:
from django.http import JsonResponse def some_view(request): data = list(SomeModel.objects.values()) return JsonResponse(data, safe=False) # or JsonResponse({'data': data})
Ce qui a fonctionné pour moi était d'utiliser values_list()
et de convertir en liste en utilisant list
def ajaxAgent(request): data = CommCenter.objects.filter().values_list() responseData = { 'status': 'success', 'msg' : list(data)} return JsonResponse(responseData)
Est-ce que cela répond à votre question? Sortir l'ensemble de requêtes Django au format JSON