I have a model Y with 3 fields. In this model Y, I have 5 entries.
I know that I can use:
from django.core import serializers
def aMethodThatReturnsJson():
return HttpResponse(serializers.serialize("json", Y.objects.all()))
This returns a proper json response.
But when I change the method to return only 1 row from the model, like below, I get Model Y is not iterable error:
def returnOnlyOneRow():
return HttpResponse(serializers.serialize("json", Y.objects.get(pk=1)))
Why does this not return a proper json object? What is the correct way to do it?
Thanks.
Here is the way to do it:
Using
filter()instead ofget()returns the proper JSON response.Another way to do it would be to use Python lists. You can wrap the query in
[ ]to turn the resulting response to a list and then serialize it to JSON. Example follows: