TypeError: Objekt ist nicht JSON serialisierbar DJango 1.8 Python 3.4
Bin ich mit DJango 1.8 und Python 3.4
Wenn die unten Ansicht wird lief, Django wirft Type Error - Objekt ist nicht JSON Serialisierbar
Views.py
from django.http import HttpRequest,HttpResponse
from django.http import JsonResponse
from json import dumps
def get_stats(request):
if request.method == "POST":
srch_dropV = request.POST['srch_dropAJ']
else:
srch_dropV = ''
if(srch_dropV == 'Green'):
students = GreenBased.objects.all()
if(srch_dropV == 'Yellow'):
students = YellowBased.objects.all()
response_data = {}
try:
response_data['result'] = 'Success'
response_data['message'] = list(students)
except:
response_data['result'] = 'Ouch!'
response_data['message'] = 'Script has not ran correctly'
return HttpResponse(JsonResponse(response_data), content_type="application/json")
Ich versuche zu Lesen paar Zeilen aus der mysql-Datenbank und zeigt Sie auf die html-Datei, ich stehe vor folgenden Fehlermeldung, wenn die obige Ansicht wird ran
TypeError: YellowBased: YelloBased object is not JSON serializable
In der HTML-Seite, ich habe ein drop-down-Liste.. auf der Grundlage der option, die ausgewählt ist, meine Ajax zurückkehren würde mir die Datensätze, wurden geholt aus der mysql-Tabelle.
Models.py
class GreenBased(models.Model):
NumOfStudents = models.CharField(max_length=300,blank=True)
Green = models.CharField(max_length=300,blank=True)
class Meta:
managed = False
db_table = "GreenStats"
class YelloBased(models.Model):
NumOfStudents = models.CharField(max_length=300,blank=True)
Yellow = models.CharField(max_length=300,blank=True)
class Meta:
managed = False
db_table = "YellowStats"
GreenStats und YellowStats Tabellen enthält nur 2*2 Zeilen in mysql
Kann mir bitte jemand helfen um dieses Problem zu identifizieren ?
hast du das überprüfen? stackoverflow.com/q/16790375/4724196
Ich habe es bereits. In DJango 1.8, Json-Bibliothek geändert hat, bin ich etwas fehlt :(.. Die Linie response_data['message'] = list(Studenten) scheint zu scheitern, in den Blick. Ich versuche, das Problem zu beheben, konnte es aber nicht lösen, doch
Sorry, diese Zeile ist andernfalls return HttpResponse(JsonResponse(response_data), content_type="application/json")
Wenn du gehst, um exchange JSON und bauen eine Art api, darf ich vorschlagen, django-rest-framework.org ? Es verfügt über tools zum erstellen von json-Ansichten, erweiterte anpassbare serialisierungsprogramme, und automatische Filter.
Hi, Sicher.. Danke
Ich habe es bereits. In DJango 1.8, Json-Bibliothek geändert hat, bin ich etwas fehlt :(.. Die Linie response_data['message'] = list(Studenten) scheint zu scheitern, in den Blick. Ich versuche, das Problem zu beheben, konnte es aber nicht lösen, doch
Sorry, diese Zeile ist andernfalls return HttpResponse(JsonResponse(response_data), content_type="application/json")
Wenn du gehst, um exchange JSON und bauen eine Art api, darf ich vorschlagen, django-rest-framework.org ? Es verfügt über tools zum erstellen von json-Ansichten, erweiterte anpassbare serialisierungsprogramme, und automatische Filter.
Hi, Sicher.. Danke
InformationsquelleAutor user3128771 | 2015-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie serialisiert
student
Liste der Objekte, probieren Sie etwas wie dieses:Beachten Sie die Zeile ändern in :
response_data['message'] = serializers.serialize('json', students)
Auch
JsonResponse
funktioniert der trick auf seine eigene, so dass keine Notwendigkeit, wickeln Sie es in einHttpResponse
.überprüfen Sie die Dokumentation für weitere Anpassung:
https://docs.djangoproject.com/en/1.8/topics/serialization/
Hoffe, das hilft!
InformationsquelleAutor HassenPy