Python 如何在使用django admin将记录插入数据库后添加函数?
我想在使用django管理面板将记录插入数据库后执行一个函数 我有一个产品表,我想在django管理面板将记录插入数据库时向用户发送通知。我知道如何向用户发送通知,但我不知道将代码放在哪里 任何建议都会有帮助 插入记录后,如何执行通知用户的功能 以下是插入记录后要执行的代码:Python 如何在使用django admin将记录插入数据库后添加函数?,python,django,django-admin,django-admin-tools,django-admin-actions,Python,Django,Django Admin,Django Admin Tools,Django Admin Actions,我想在使用django管理面板将记录插入数据库后执行一个函数 我有一个产品表,我想在django管理面板将记录插入数据库时向用户发送通知。我知道如何向用户发送通知,但我不知道将代码放在哪里 任何建议都会有帮助 插入记录后,如何执行通知用户的功能 以下是插入记录后要执行的代码: from fcm_django.models import FCMDevice device = FCMDevice.objects.all() device.send_message(title="Title", b
from fcm_django.models import FCMDevice
device = FCMDevice.objects.all()
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
我找了很多,但没有找到任何有用的东西
多亏了这个伟大的社区。您需要使用Django模型
post\u 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\u save
信号。从文档中:
与pre_save类似,但在save()方法末尾发送
网址:
django版本:1.7+/p>您可以修改产品模型上的保存方法
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管理面板中添加实例时)。我认为这个答案可以帮助您:@Y.Bernard这是我想要的答案,但问题是答案代码应该放在哪里?我的意思是在admin.py或models.py,….@T.Pool models.py中