I have the following model class
class Club(models.Model):
"""
A table to store all clubs participating
"""
name = models.CharField(max_length=30)
logo = models.ImageField(upload_to='images/')
goals_last_season = models.IntegerField()
points_last_season = models.IntegerField()
def __str__(self):
return f'{self.name}'
and try to serialize it with this encoder
class ExtendedEncoder(DjangoJSONEncoder):
def default(self, o):
if isinstance(o, ImageFieldFile):
return str(o)
else:
return super().default(o)
as follows:
def get_offer_details(request):
"""
View to get the queried club's data
:param request:
:return:
"""
# Get the passed club name
club_name = request.POST.get('club_name')
# Query the club object
club_obj = Club.objects.get(name=club_name)
# Create dict
data = {
'club_obj': club_obj
}
# Return object to client
return JsonResponse(data, safe=False, encoder=ExtendedEncoder)
which raises TypeError: Object of type Club is not JSON serializable
. How can I basically serialize this?
Full Traceback:
Traceback (most recent call last):
File "/Users/jonas/PycharmProjects/farena/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/Users/jonas/PycharmProjects/farena/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/jonas/PycharmProjects/farena/applications/core/views.py", line 87, in get_offer_details
return JsonResponse(data, encoder=ExtendedEncoder)
File "/Users/jonas/PycharmProjects/farena/venv/lib/python3.9/site-packages/django/http/response.py", line 653, in __init__
data = json.dumps(data, cls=encoder, **json_dumps_params)
File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 234, in dumps
return cls(
File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
File "/Users/jonas/PycharmProjects/farena/applications/core/views.py", line 15, in default
return super().default(o)
File "/Users/jonas/PycharmProjects/farena/venv/lib/python3.9/site-packages/django/core/serializers/json.py", line 106, in default
return super().default(o)
File "/opt/homebrew/Cellar/python@3.9/3.9.6/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/encoder.py", line 179, in default
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type Club is not JSON serializable