我想在使用django-admin panel将记录插入数据库后执行功能。
我有一个产品表,当Django管理面板将记录插入数据库时,我想向用户发送通知。我知道如何向用户发送通知,但我不知道将代码放在哪里。
任何建议都会有所帮助。
插入记录后如何执行通知用户的功能?
这是插入记录后要执行的代码:
from fcm_django.models import FCMDevice
device = FCMDevice.objects.all()
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
我搜寻了很多,但没有发现任何有用的东西。
感谢这个伟大的社区。 p>
答案 0 :(得分:0)
您需要使用Django模型post_save
信号来实现此目的。该信号接收器可以放置在模型所在的相同位置
class FCMDevice(models.Model):
...
@receiver(post_save, sender=FCMDevice)
def notify_users(sender, instance, **kwargs):
# your logic goes here
# instance is referred to currently inserted row
pass
答案 1 :(得分:0)
您可能想检查post_save
信号。从文档中:
类似于pre_save,但在save()方法的末尾发送。
url:https://docs.djangoproject.com/en/2.1/ref/signals/#post-save
django版本:1.7+
答案 2 :(得分:0)
您可以修改产品型号上的保存方法
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
device = FCMDevice.objects.all()
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
好吧,每次保存实例时(不仅是在django管理面板中添加实例时),它都会发送通知。