Python 混合url分派和遍历

Python 混合url分派和遍历,python,pyramid,Python,Pyramid,我一直在开发一个使用url调度的应用程序。我根据这里找到的一些很棒的信息建立了我的根工厂:(谢谢Michael!) 现在我也在尝试使用金字塔形式。金字塔形式的方法似乎使用遍历来确定授权。没关系,但我有一点被卡住了 对于遍历,对象需要位置感知,这意味着它们需要有名称和父对象。所以我有一个用户对象 class User(Base): __name__ = 'user' __parent__ = ... 我已经在RootFactory中定义了所需的ACL。当调用RootFactory

我一直在开发一个使用url调度的应用程序。我根据这里找到的一些很棒的信息建立了我的根工厂:(谢谢Michael!)

现在我也在尝试使用金字塔形式。金字塔形式的方法似乎使用遍历来确定授权。没关系,但我有一点被卡住了

对于遍历,对象需要位置感知,这意味着它们需要有名称和父对象。所以我有一个用户对象

class User(Base):
    __name__ = 'user'
    __parent__ = ...
我已经在RootFactory中定义了所需的ACL。当调用RootFactory的构造函数时,所有这些都会得到设置。我想将所有类的父类都设置为RootFactory,但创建一个需要向构造函数传递请求的RootFactory实例(特别是因为我的RootFactory子类为pyramid_formalchemy.resources.Models)

但是当我设置课程时,我没有请求

如何正确地将类上的父级设置为根工厂


谢谢。

我在这里回答了一些关于在金字塔模式下处理ACL的类似问题:

基本上,pyramid_formalchemy为所有管理URL定义了自己的根工厂。您可以覆盖它并在那里定义一个
\uuuuuuuuuuuuuuuuuuuuuuuuuu
(请参阅
ModelsWithACL
),这可能会解决大多数问题。从该根开始,pyramid\u formalchemy将自动设置
\u父项\u
引用。因此,如果您在您的对象上定义了一些特殊的
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
将首先进行测试,然后
ACLAuthorizationPolicy
将查看
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

另见:


是的,我以前见过这个答案。我仍然面临的问题是,金字塔形式的化学机制没有在我的模型上设置父属性。因此,当模型成为上下文并且授权策略在沿袭中向上移动时,ACLAuthorizationPolicy.allows()会在模型本身上触底,并且永远不会到达我的自定义根工厂。pyramid_formalchemy在模型上的父级设置在哪里?我现在在模型中看到了代码。\uuuu getitem_uuuuu()没错,这会在模型上设置父级。查看诸如…/admin/User works和users之类的页面将列出。坏掉的是…/admin页面本身。它应该列出我在调用formalchemy_admin()时配置的所有模型。但是当/admin页面被调用时,getitem\uuuuuu()永远不会被调用,因此模型的\uuuu父级没有被正确设置,并且我没有看到列出的模型。