Commit adfe5112d7dbfaa914ae78fbb6ff5f4383ea6405
1 parent
a76575ca
Exists in
master
and in
2 other branches
Adding pagination in chat messages in the app
Showing
1 changed file
with
12 additions
and
1 deletions
Show diff stats
api/views.py
... | ... | @@ -300,6 +300,9 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin): |
300 | 300 | def get_messages(self, request): |
301 | 301 | username = request.data['email'] |
302 | 302 | user_two = request.data['user_two'] |
303 | + n_page = int(request.data['page']) | |
304 | + messages_by_page = int(request.data['page_size']) | |
305 | + #messages_by_page = 15 | |
303 | 306 | |
304 | 307 | user = User.objects.get(email = username) |
305 | 308 | |
... | ... | @@ -312,7 +315,15 @@ class ChatViewset(viewsets.ModelViewSet, LogMixin): |
312 | 315 | |
313 | 316 | messages = TalkMessages.objects.filter((Q(talk__user_one__email = username) & Q(talk__user_two__email = user_two)) | (Q(talk__user_one__email = user_two) & Q(talk__user_two__email = username))).order_by('-create_date') |
314 | 317 | |
315 | - serializer = ChatSerializer(messages, many = True, context = {"request_user": user}) | |
318 | + page = [] | |
319 | + | |
320 | + for i in range(messages_by_page*(n_page - 1), (n_page*messages_by_page)): | |
321 | + if i >= messages.count(): | |
322 | + break; | |
323 | + else: | |
324 | + page.append(messages[i]) | |
325 | + | |
326 | + serializer = ChatSerializer(page, many = True, context = {"request_user": user}) | |
316 | 327 | |
317 | 328 | json_r = json.dumps(serializer.data) |
318 | 329 | json_r = json.loads(json_r) | ... | ... |