Как показать "время", в которое было отправлено сообщение, с помощью каналов 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);