Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 05.03.2015
Сообщений: 191

Информирование пользователя об изменении в базе данных

09.10.2019, 18:02. Показов 1972. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
У меня такой вопрос. Есть некая модель в базе данных. Данными из этой модели пользуются несколько пользователей. Возможно ли как то на джанге реализовать такой функционал, что если один пользователь добавил в эту модель новые данные, то джанго сразу же отправлял другому пользователю эту информацию. Или же стоит это реализовать средствами ajax - мониторить эту модель с определенной частотой и если возникло изменение пересылать эти данные пользователю.
Заранее спасибо за помощь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2019, 18:02
Ответы с готовыми решениями:

Информирование модели о изменении конкретных данных
Есть вопрос по сабжу. Конкретно по архитектуре связей модель-данные(дерево). Есть двойная модель QAbstractModel(список файлов/директорий...

Информирование при изменении страницы
Нужно написать скрипт который обновляет страницу каждые "N секунд" и проверяет изменения на странице, при изменении выводит сообщение или...

Выкинуть пользователя из системы при изменении прав в базе
После входа в систему пользователь может работать с разрешёнными для него страницами. Админ может изменить в базе права пользователя, но...

9
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
09.10.2019, 20:32
BenWade, сигналы используй или save переопределяй.
0
2 / 2 / 1
Регистрация: 05.03.2015
Сообщений: 191
09.10.2019, 23:53  [ТС]
m0nte-cr1st0, мне не совсем понятно как с помощью сигналов можно передать данные в шаблон. Не понятно как пользователь не отправляя запрос на сервер узнает об изменении модели - добавлении данных. Сейчас у меня такое понимание что без запроса со стороны пользователя например через аякс это сделать не возможно. Или же я всеже ошибаюсь?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
10.10.2019, 10:15
BenWade, смотря, как уведомлять надо.
0
2 / 2 / 1
Регистрация: 05.03.2015
Сообщений: 191
10.10.2019, 11:01  [ТС]
m0nte-cr1st0, ну у меня очень грубое подобие чата. Один пользователь вводит в inpup данные и аяксом отправляет это на сервер, где они сохраняются в базе данных. Об этом событии сразу должен узнать другой пользователь и на его странице в текстовом поле должны отобразиться эти данные.
В просто приближении я вижу решение этой задачи так: написать функцию мониторинга, которая аяксом с определенной частотой опрашивает сервер на предмет изменения модели и если модель действительно изменилась, то выводить информацию об этом в шаблоне у пользователя. Еще есть websoket с ними я пока не разбирался.
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
10.10.2019, 11:54
BenWade, тогда лонг поллинг, наверное. Хотя можно и вебсокет, это даже лучше будет, но посложней.
0
2 / 2 / 1
Регистрация: 05.03.2015
Сообщений: 191
10.10.2019, 12:05  [ТС]
m0nte-cr1st0, ок, спасибо подумаю над этим всем делом. а не подскажите как возможно оценить добавились ли данные в модель базы данных? т.е. если мы постоянно опрашиваем сервер на предмет этого контроль и в какой то момент эти данные появились, как именно понять, что это новые данные? или просто забирать last() и уже на уровне пользователя делать проверку совпадает ли пришедшее от сервера с тем что есть у пользователя?
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
10.10.2019, 14:06
BenWade, сигналы реагируют на изменения в бд.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.10.2019, 17:59
Конечно, использовать сигналы интересно, но мне кажется, что можно поступить проще. Добавить в таблицу флаг "новое" и ставить его по дефолт. Другой клиент забирает такие сообщения из базы и помечает их, что они больше не "новые".

Или где-то хранить timestamp последнего забранного сообщения (да хоть в браузере), а все сообщения позднее этого времени считать новыми.
0
207 / 23 / 6
Регистрация: 12.06.2012
Сообщений: 235
23.10.2019, 16:38
Цитата Сообщение от BenWade Посмотреть сообщение
а не подскажите как возможно оценить добавились ли данные в модель базы данных?
в SQL базах для этого есть триггер. Прописывается сценарий к конкретной таблице, мол, если был INSERT/UPDATE/DELETE, то там уже действовать по инструкции. В том числе и делать send по вебсокету или на емеил... Но с пайтоном только начинаю дружить, и как работает ОРМ ещё не до конца понимаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.10.2019, 16:38
Помогаю со студенческими работами здесь

Как можно при изменении данных в датагриде обновить данные в базе данных?
Ребята, подскажите пожалуйста как решить следующую задачку. У меня есть dataset. Данные из датасета отображаются в DataGrid : ...

Информирование пользователя о достижении набора определенного количества записей
Здравствуйте! Подскажите пожалуйста, как методом VBA реализовать следующий механизм.: По сути дела. Есть некая форма, перечень деталей, в...

Отображение данных пользователя при изменении записи в форме
Здравствуйте форумчане! Подскажите, как сделать, так, чтобы при изменении замписи в форме отражалось данные пользователя. имеется БД, вход...

Внесение текущего пользователя в поле формы, при изменении им данных
Есть форма для просмотра и редактирования данных. Если текущий пользователь изменил данные полей формы, то в одно поле вносится его...

Хранение данных пользователя(инф-ию,ограничений,разрешений) в Базе Данных, нужен совет
Здравствуйте, подскажите пожалуйста в какой форме лучше хранить в БД информацию о пользователях, их ограничения и разрешения на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru