Reputation: 82765
How do I get DateTimeField
from MySQL in Django in JSON format? I got an error when I executed the code
Date.time cannot be serialized in json
(data holds a lot of values)
data = json.dumps(data)
But this was fixed by adding
ALL_data = serializers.serialize("json", data, ensure_ascii=False)
But now I get 'str' object has no attribute '_meta'
.
Upvotes: 27
Views: 31961
Reputation: 82765
DjangoJSONEncoder solved my problem.
import json
from django.core.serializers.json import DjangoJSONEncoder
data = json.dumps(data, cls=DjangoJSONEncoder)
Upvotes: 89
Reputation: 239300
Whenever you see an error message of the form ... object has no attribute '_meta'
that is a clear-cut sign that a method was expecting a queryset but got something else. In this particular situation, serializers.serialize must have a queryset for its second argument. You can't use a list, dictionary, etc., and definitely not a string.
Where is data
being set. Check to make sure it's being assigned a true queryset. You might also want to post more of your code, if you're still having issues. It's difficult to diagnose the problem much more, out of context.
Upvotes: 1
Reputation: 798746
Django's serializers are only meant to be used on query sets; you will have to find a different way to solve your problem, such as converting the datetime
to something else first.
Upvotes: 6