Как показать "время", в которое было отправлено сообщение, с помощью каналов django

Я новичок в django-channels, работаю над приложением для чата. Я хочу, чтобы "метка времени" отображалась мгновенно, когда сообщение отправляется в комнату, это работает только когда я обновляю страницу, так как метка времени сохраняется в модели. Я пробовал играть с consumers.py и js кодом, но не смог отправить "временную метку" мгновенно вместе с сообщением.

Используйте timezone в consumers.py

from django.utils import timezone

так:

async def chat_message(self, event):
                message = event['message']
                username = event['username']
        
                # Send message to WebSocket
                await self.send(text_data=json.dumps({
                    'message': message,
                    'username': username,
                    'timestamp': timezone.now().isoformat()
                }))

также в javascript вы можете изменить его формат или локализовать его, но это не обязательно:

var dateOptions = {hour: 'numeric', minute: 'numeric', hour12: false};
var datetime = new Date(data.timestamp).toLocaleString('en', dateOptions);
Вернуться на верх