django - 如何解决涉及 haystack 的循环导入?

标签 django import signals django-haystack

草垛

haystack_signal_processor让您使用自定义信号处理器为某些模型启动索引。

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

然后在我的 signals.py 里面我有from 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)

关于django - 如何解决涉及 haystack 的循环导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520812/

相关文章:

java - 在根目录中导入Java包

python - 如何确定通过 `from m import *` 导入的内容?

c++ - 在信号处理程序中,如何知道程序在哪里被中断?

excel - SAS:使用 PROC IMPORT 导入 .xlsx 时定义类型

c++ - C 中的 execv 调用

python - 为什么信号不简单地称为事件?

python - 如何使用或使用 Django 的模型过滤系统?

php - Python/Django 到 PHP 的过渡?学习曲线错误?

python - Django 通过 iOS 上传图片时图像旋转不正确(EXIF 问题)

python - 没有CSS的Django Admin加载