Python 如何在使用django admin将记录插入数据库后添加函数?

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

我想在使用django管理面板将记录插入数据库后执行一个函数

我有一个产品表,我想在django管理面板将记录插入数据库时向用户发送通知。我知道如何向用户发送通知,但我不知道将代码放在哪里

任何建议都会有帮助

插入记录后,如何执行通知用户的功能

以下是插入记录后要执行的代码:

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中