关于python:Satchmo中的`default_product_search_listener`在哪里断开()

Where to Disconnect() the `default_product_search_listener` in Satchmo

我不想使用默认 Satchmo 搜索侦听器。我已经创建了自己的搜索侦听器。

断开默认搜索侦听器的最佳位置在哪里?

1
2
3
# This is what I need to do...
from satchmo_store.shop.listeners import default_product_search_listener
application_search.disconnect(default_product_search_listener, sender=Product)

我试图在我的应用程序的 __init__.py 和我的应用程序的 models.py 中执行此操作,但它们似乎都在 Satchmo 实际上 connects 信号之前运行,所以他们没有'没有正确断开连接。我在哪里可以运行我的断开连接代码,这样我才能确定 Satchmo 已经连接了它的监听器?


Where To Put Django Startup Code 更普遍地回答了这个问题。

Write middleware that does this in init and afterwards raise django.core.exceptions.MiddlewareNotUsed from the init, django will remove it for all requests...

请参阅 Django 文档,了解如何编写自己的中间件。


尝试在 INSTALLED_APPS 中交换 Satchmo 和您的应用的顺序。