在Django中更新数据库时更新

时间:2012-03-02 21:14:36

标签: django django-models django-admin

我的数据库中有很多记录显示在屏幕上。但是,记录是用户生成的,有时必须删除。每条记录都有一个show字段,最初始终设置为true。当我们获得必须删除的内容时,人类将在Django管理界面中将其设置为false。发生这种情况时,我们需要从屏幕上删除不良内容。所以我的问题是,在Django界面中,什么是告诉记录何时更新并做出某些响应这一变化的方法?

1 个答案:

答案 0 :(得分:2)

您应该阅读signals

关于如何做到这一点的想法:

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接收信号发送的信息。或者你可以每20-30秒做一次ajax请求来检查所有记录并发现哪一个被隐藏,或者你可以查看信号将填充的最新隐藏记录列表。

无论如何,有不同的方法可以做到这一点。