Обновление, когда база данных изменилась в Django - PullRequest
0 голосов
/ 03 марта 2012

У меня есть много записей в моей базе данных, которые отображаются на экране. Тем не менее, записи создаются пользователем и иногда должны быть удалены. Каждая запись имеет поле show, которое изначально всегда имеет значение true. Когда мы получим контент, который нужно удалить, человек установит его в false в интерфейсе администратора Django. Когда это происходит, нам нужно удалить плохой контент с экрана. Поэтому мой вопрос в интерфейсе Django: как определить, когда запись была обновлена, и что-то предпринять в ответ на это изменение?

1 Ответ

2 голосов
/ 03 марта 2012

Вы должны прочитать о сигналах :

Идея о том, как это сделать:

from django.core.signals import post_save
from django.dispatch import receiver

@receiver(post_save, sender=MyModel)
def my_handler(sender, instance, created, raw, **kwargs):
    if created: # True for save, False for update
        ...

Я думаю, что это может помочь вам определить, когда запись обновляется и когда вы можете что-то с этим сделать.

Но если пользователю, видящему записи, не нужно обновлять страницу, чтобы запись была скрыта, вы можете использовать websockets для получения этой информации, отправленной вашим сигналом. Или вы можете просто делать ajax-запросы каждые 20-30 секунд, чтобы проверить все записи и найти, какая из них скрыта, или вы можете проверить список последних скрытых записей, которые будет заполнять ваш сигнал.

Во всяком случае, есть разные способы сделать это.

...