Ich möchte die Werte eines einzelnen Modells in Django serialisieren. Weil ich get()
verwenden möchte, ist values()
nicht verfügbar. Ich lese jedoch on Google Groups, dass Sie auf die Werte mit __dict__
zugreifen können.Wie JSON __dict__ eines Django-Modells serialisiert?
from django.http import HttpResponse, Http404
import json
from customer.models import Customer
def single(request, id):
try:
model = Customer.objects.get(id=id, user=1)
except Customer.DoesNotExist:
raise Http404
values = model.__dict__
print(values)
string = json.dumps(values)
return HttpResponse(string, content_type='application/json')
Die print-Anweisung gibt dies aus.
{'_state': <django.db.models.base.ModelState object at 0x0000000005556EF0>, 'web
site': 'http://example.com/', 'name': 'Company Name', 'id': 1, 'logo': '', 'use
r_id': 1, 'address3': 'City', 'notes': '', 'address2': 'Street 123', 'address1': 'Company Name', 'ustid': 'AB123456789', 'fullname': 'Full Name Of Company Inc.', 'mail': '[email protected]'}
Wegen der _state
Schlüssel, der die nächste Zeile nicht mit diesem Fehler einen unserialisierbar Wert hält.
<django.db.models.base.ModelState object at 0x0000000005556EF0> is not JSON serializable
Wie kann ich das Wörterbuch Serialisierung von __dict__
ohne _state
enthalten zurückgegeben?
möglich Duplikat [django WebAPI: dump django Modell zu JSON] (http://stackoverflow.com/questions/16155277/django-webapi-dump-django-model-to-json) – FallenAngel
@FallenAngel Serialisierung was 'alles() 'Rückkehr ist trivial, aber meine Frage ist über' get() '. Dies ist verwandt, aber kein Duplikat. – danijar