python
1models 2class Message(models.Model): 3 to_user = models.ForeignKey(User, on_delete = models.CASCADE, related_name="to_user") 4 from_user = models.ForeignKey(User, on_delete = models.CASCADE,related_name="from_user") 5 content = models.TextField() 6 created_at = models.DateTimeField(default=datetime.now) 7 read = models.BooleanField(default=False)
python
1views 2def message_list(request,user_id): 3 ml = Message.objects.all().filter( 4 Q(to_user=user_id)| Q(from_user=user_id) 5 ).order_by('created_at') 6 j_list =[] 7 for item in ml: 8 params = {} 9 created_at = item.created_at.strftime("%Y/%m/%d %H:%M:%S") 10 params.update(id = item.id,to_user = item.to_user.id,from_user = item.from_user.id,content=item.content,created_at=created_at,read=item.read) 11 j_list.append(params) 12 print(j_list) 13 json_str = json.dumps(j_list, ensure_ascii=False, indent=2) 14 response = HttpResponse(json_str) 15 return response 16
print結果
[{'id': 4, 'to_user': 4, 'from_user': 1, 'content': 'はろー', 'created_at': '2021/01/26 04:56:35', 'read': False}, {'id': 5, 'to_user': 1, 'from_user': 4, 'content': 'てんきいいね', 'created_at': '2021/01/26 04:56:46', 'read': False}, {'id': 6, 'to_user': 2, 'from_user': 4, 'content': 'ちょうしどう', 'created_at': '2021/01/26 04:57:00', 'read': False}, {'id': 7, 'to_user': 4, 'from_user': 2, 'content': 'いいかんでぃ', 'created_at': '2021/01/26 04:57:10', 'read': False}, {'id': 9, 'to_user': 3, 'from_user': 4, 'content': 'まだねむい?', 'created_at': '2021/01/26 05:11:18', 'read': False}]
LINEのメッセージ一覧の様に自分宛のメッセージと相手宛のメッセージの早い方の一覧を取得したいのですが、
どの様にかけばよろしいのでしょうか?よろしくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/29 04:46
2021/01/29 05:02