Почему я не могу использовать Django Сигналы для перезагрузки HTML страницы - PullRequest
1 голос
/ 28 января 2020

Я хочу перезагрузить или обновить sh страницу HTML (содержимое блока) при сохранении указанной таблицы c из базы данных. Моей первой идеей было использование Django Signals (метод post-save ()). Этот триггер вызвал бы просмотр или отобразил бы шаблон html. Но я читал, что это невозможно и / или это не лучшая практика.

Почему невозможно использовать сигнал Django для этой цели и какова лучшая практика? Знаете ли вы другую методологию, отличную от AJAX запроса?

Заранее большое спасибо за ваш ответ.

1 Ответ

2 голосов
/ 28 января 2020

Причина, по которой это невозможно, заключается в том, что сигнал Django - это просто ловушка, запускающая функцию при срабатывании сигнала. Это не меняет того факта, что ваша веб-страница все еще использует HTTP, который не имеет состояния. Это означает, что, как только ваша страница отображается сервером, а затем отправляется вашему клиенту (Chrome, IE, et c), соединение по существу закрывается.

Для того, чтобы оставаться открытым канал, вы можете использовать что-то под названием WebSockets, чтобы поддерживать соединение, как упоминалось @schillingt. Это позволит вам получать обновления в режиме реального времени на странице пользователя.

Django Документация по каналам: https://channels.readthedocs.io/en/latest/

...