草垛

haystack_signal_processor使您可以使用自定义信号处理器来为某些模型初始化索引。

我在settings.py中
HAYSTACK_SIGNAL_PROCESSOR='my_app.signals.MySignalProcessor'(这样导入signals.py。这是设置->信号)

然后在我的signals.pyfrom my_app.models import my_model#连接my_model
而且my_app.models.py具有from django.conf import settings(信号->型号->设置)

如何解决此循环导入?

最佳答案

取自https://github.com/PitonFoundation/atlas/commit/cc0abcb

与其在您的signals.py文件之上导入模型,不如使用get_model在您自定义SignalProcessor的方法中导入模型:

from django.db.models.loading import get_model

class MySignalProcessor(signals.BaseSignalProcessor):
    def setup(self):
        MyModel = get_model('myApp', 'MyModel')
        models.signals.post_save.connect(self.handle_save, sender=MyModel)

10-08 02:01