Django TypeError <Page 1 of 8> is not JSON serializable
The error occurs when I try to encode data into json. The error is related to pagination. I want json encoded data.
Here's the code I am using to get the results from db and then encoding it to json
views.py
def pagination(obj, request): max = request.GET.get('max') if 'max' in request.GET else 1 paginator = Paginator(obj, max) # Show 25 contacts per page page = request.GET.get('page') try: return paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. return paginator.page(1) except EmptyPage: return "" def folder_list(request): folders = UserFolder.objects.filter(creator=request.user).order_by('-modified_date') folders_dict = [] for folder in folders: d = {} for k, v in folder.__dict__.items(): d[k] = str(v) d["creator__first_name"] = folder.creator.first_name folders_dict.append(d) folders = Common.pagination(folders_dict, request) folders = json.dumps(folders) return HttpResponse(folders)
Any help would be really appreciated.
thank
+3
source share
1 answer
I figured out this problem. I just added "object_list" when encoding data in json like this:
def folder_list(request): folders = UserFolder.objects.filter(creator=request.user).order_by('-modified_date') folders_dict = [] for folder in folders: d = {} for k, v in folder.__dict__.items(): d[k] = str(v) d["creator__first_name"] = folder.creator.first_name folders_dict.append(d) folders = Common.pagination(folders_dict, request) folders = json.dumps(folders.object_list) #added .object_list return HttpResponse(folders)
0
source share