如何在使用 django admin 将记录插入数据库后添加功能?
How to add a function after a record inserted in database using django admin?
我想在使用 django-admin 面板将记录插入数据库后执行一个函数。
我有一个产品 table,我想在 django 管理面板将记录插入数据库时向用户发送通知。我知道如何向用户发送通知,但我不知道将我的代码放在哪里。
任何建议都会有所帮助。
如何在插入记录后执行通知用户的功能?
这是我在插入记录后执行的代码:
from fcm_django.models import FCMDevice
device = FCMDevice.objects.all()
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
我搜索了很多但没有找到任何有用的东西。
感谢这个伟大的社区。
您需要使用 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
您可能想检查 post_save
信号。来自文档:
Like pre_save, but sent at the end of the save() method.
url: https://docs.djangoproject.com/en/2.1/ref/signals/#post-save
django 版本:1.7+
您可以修改产品型号的保存方式
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 管理面板中添加时)。
我想在使用 django-admin 面板将记录插入数据库后执行一个函数。
我有一个产品 table,我想在 django 管理面板将记录插入数据库时向用户发送通知。我知道如何向用户发送通知,但我不知道将我的代码放在哪里。
任何建议都会有所帮助。
如何在插入记录后执行通知用户的功能?
这是我在插入记录后执行的代码:
from fcm_django.models import FCMDevice
device = FCMDevice.objects.all()
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
我搜索了很多但没有找到任何有用的东西。
感谢这个伟大的社区。
您需要使用 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
您可能想检查 post_save
信号。来自文档:
Like pre_save, but sent at the end of the save() method.
url: https://docs.djangoproject.com/en/2.1/ref/signals/#post-save
django 版本:1.7+
您可以修改产品型号的保存方式
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 管理面板中添加时)。