Как получить новые данные во время выполнения из django?
Я работаю над проектом Django с фронтендом ReactJs. В этом проекте я должен создать простое приложение для чата, где пользователи могут общаться друг с другом. В представлениях django у меня есть следующая функция для чтения сообщений
Views.py
class MessagesListAPI(GenericAPIView, ListModelMixin ):
def get_queryset(self):
condition1 = Q(sender=15) & Q(receiver=11)
condition2 = Q(sender=11) & Q(receiver=15)
return Messages.objects.filter(condition1 | condition2)
serializer_class = MessagesSerializer
permission_classes = (AllowAny,)
def get(self, request , *args, **kwargs):
return self.list(request, *args, **kwargs)
это дает мне все сообщения между пользователем 11 и пользователем 15.
На фронтенде я получаю эти сообщения от rest Api, вызывая вышеуказанную функцию
frontend
const chatApi = axios.create({
baseURL: 'http://localhost:8000/chat/'
})
const getMessages = async() => {
let data = await chatApi.get(`MessageRead/`).then(({data})=>data);
setMessages(data);
}
Я вызываю эту функцию в событии onClick кнопки. и отображаю сообщения с помощью массива сообщений.
проблема в том, что в то время, когда эти сообщения открыты для пользователя. в то время, если новое сообщение (данные) добавляется в базу данных. Я должен снова нажать на кнопку и снова вызвать функцию getMessages для отображения этого сообщения.
Есть ли способ автоматически получить новое сообщение (запись) без повторного вызова этой функции нажатием кнопки?