如何在 Django 中禁用流

How to disable Stream in Django

我正在尝试暂时阻止 stream_django 进行任何远程 API 调用以进行离线开发和测试。

完全禁用与上游 API 服务器的远程连接的最简单方法是什么?

我发现了 feed_manager.disable_model_tracking() which seems to prevent Activity 个更新,但它并没有阻止所有上游调用(例如 feed_manager.follow_user())。

stream_django 允许您通过 STREAM_FEED_MANAGER_CLASS Django 设置使用自定义提要管理器 class;这可能是跳过 follow/unfollow 请求的最简单方法。

# yoursettings.py
STREAM_FEED_MANAGER_CLASS = "mymodule.TestFeedManager"

# mymodule/__init__.py
from stream_django import managers

class TestFeedManager(managers.FeedManager):

    def follow_user(self, *args, **kwargs):
        pass

    def unfollow_user(self, *args, **kwargs):
        pass

另一种可能更强大(也更复杂)的方法是使用 mock 库来存根管理器或类似方法。