1
votes

L'objet de type QuerySet n'est pas JSON sérialisable Django

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)


1 commentaires

Est-ce que cela répond à votre question? Sortir l'ensemble de requêtes Django au format JSON


3 Réponses :


0
votes

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


0 commentaires

3
votes

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})


0 commentaires

0
votes

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)


0 commentaires