Python 如果接收器函数存在于管理命令中,则在何处注册django信号

Python 如果接收器函数存在于管理命令中,则在何处注册django信号,python,django,django-signals,Python,Django,Django Signals,实际上,我有一个独立的脚本,它从外部源获取数据并将其转储到django通道层。启动时,脚本查询数据库中的所有Product对象,这会告诉它需要加入哪些数据源。我试图实现一个信号,当保存一个新的产品实例时,它会告诉脚本,这样它就可以加入可能需要的任何其他源。 我正在使用以下代码: from django.db.models.signals import post_save from django.dispatch import receiver from home.models import P

实际上,我有一个独立的脚本,它从外部源获取数据并将其转储到django通道层。启动时,脚本查询数据库中的所有
Product
对象,这会告诉它需要加入哪些数据源。我试图实现一个信号,当保存一个新的
产品
实例时,它会告诉脚本,这样它就可以加入可能需要的任何其他源。 我正在使用以下代码:

from django.db.models.signals import post_save
from django.dispatch import receiver

from home.models import Product


@receiver(post_save, sender=Product)
def test(sender, **kwargs):
    print("SUCESS------------------------------------------------------{}".format(sender))

此脚本位于
f/data\u sources/management/commands/source.py
中,产品模型位于
home/models.y
中。显然,我需要以某种方式导入source.py中定义的“test”函数,但我不确定如何导入。这是一个巨大的脚本,我需要导入整个脚本吗?我甚至不确定导入命令是什么。

只有在产品由独立脚本保存时,使用信号才能起作用。如果产品是通过另一个过程(例如通过网页)保存的,则它将不起作用。我认为最好是更新,而不是将信息分成两个问题。对,有什么办法可以解决这个问题吗?我已经删除了老问题,因为它包含了所有相同的信息,而且产品模型定义了数据源的名称(实际上是pubnub频道)。此脚本从每个产品实例读取pubnub频道的名称,并在pubnub上订阅该频道。然后,它将数据推送到django通道层。问题是,如果创建了一个新产品,脚本就不知道如何更新其订阅列表。我想可能会用一个信号告诉它‘产品x是用pubnub频道y创建的’,然后它会做出适当的反应。