如何覆盖金字塔的会话工厂?
how to override Pyramid's session factory?
我正在尝试在同一项目中同时使用 pyramid_persona 和 pyramid_beaker。但是,两者都在其 includeme()
方法中设置了 session_factory,这会导致此错误:
pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions
For: <InterfaceClass pyramid.interfaces.ISessionFactory>
Line 173 of file /home/pyramid/project_env/local/lib/python2.7/site-packages/pyramid_beaker/__init__.py:
config.set_session_factory(session_factory)
Line 50 of file /home/pyramid/project_env/local/lib/python2.7/site-packages/pyramid_persona/__init__.py:
config.set_session_factory(session_factory)
我正在从 __init__.py
的 main()
方法中导入这些模块,如下所示:
config.include("pyramid_persona")
config.include("pyramid_beaker")
使用 pyramid v. 1.5.1、pyramid_beaker 0.8 和 pyramid_persona 1.5。
有没有办法告诉 Pyramid 可以覆盖 session_factory?
您可以在包含插件后通过自己调用 config.set_session_factory
覆盖会话工厂。或者 select 你想要的那个,然后在它们之间调用 config.commit
。这是金字塔 conflict resolution mechanism.
的一部分
我正在尝试在同一项目中同时使用 pyramid_persona 和 pyramid_beaker。但是,两者都在其 includeme()
方法中设置了 session_factory,这会导致此错误:
pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions
For: <InterfaceClass pyramid.interfaces.ISessionFactory>
Line 173 of file /home/pyramid/project_env/local/lib/python2.7/site-packages/pyramid_beaker/__init__.py:
config.set_session_factory(session_factory)
Line 50 of file /home/pyramid/project_env/local/lib/python2.7/site-packages/pyramid_persona/__init__.py:
config.set_session_factory(session_factory)
我正在从 __init__.py
的 main()
方法中导入这些模块,如下所示:
config.include("pyramid_persona")
config.include("pyramid_beaker")
使用 pyramid v. 1.5.1、pyramid_beaker 0.8 和 pyramid_persona 1.5。
有没有办法告诉 Pyramid 可以覆盖 session_factory?
您可以在包含插件后通过自己调用 config.set_session_factory
覆盖会话工厂。或者 select 你想要的那个,然后在它们之间调用 config.commit
。这是金字塔 conflict resolution mechanism.