Abhishek
Abhishek

Reputation: 3068

Django serialization error

I am trying to serialize my django model like this:

>>> from studentapp.models import StudentAcademicPrograms
>>> from studentapp.models import AcademicPrograms, AcademicProgramsManager
>>> from django.core import serializers
>>> json_serializer = serializers.get_serializer("json")
>>> data = json_serializer.serialize(StudentAcademicPrograms.objects.all())

But i am getting this error:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: unbound method serialize() must be called with Serializer instance as first argument (got QuerySet instance instead)

Upvotes: 1

Views: 841

Answers (2)

migonzalvar
migonzalvar

Reputation: 1685

You must instantiate json_serializer

>>> data = json_serializer().serialize(StudentAcademicPrograms.objects.all())

Notice () after json_serializer.

Upvotes: 2

alecxe
alecxe

Reputation: 473833

You can do it this way:

from django.core.serializers import serialize
serialize('json', StudentAcademicPrograms.objects.all())    

Your specific problem is that you are try to call serialize() on a Serializer class, not instance.

JSONSerializer = serializers.get_serializer("json")
json_serializer = JSONSerializer()
json_serializer.serialize(StudentAcademicPrograms.objects.all())
data = json_serializer.getvalue()

Also check out this example from django docs.

Upvotes: 2

Related Questions