我正在建设一个相当大的项目,基本上包括:
服务器1: 冰上服务。 用于会话处理的Glacier2。 允许访问Glacier2的防火墙。
服务器2: 通过Glacier2提供Ice服务的Web界面(读取,公共)。 通过Glacier 2提供Ice服务的管理界面。
我关心的是网页界面。我想使用Django,因为它都是用python编写的,并且有非常有用的自动管理面板生成器。
web界面不访问任何数据库。它通过Glacier2路由器连接到服务器1上的Ice服务,并使用这些服务公开的API来操作数据。
正如您可能知道的,Django中的管理生成依赖于Django的ORM的使用;我没有使用它,因为我没有数据库可以访问。
所以我需要生成管理面板,但是,我需要拦截任何“db access”调用并将其转换为Ice服务调用,然后获取服务的输出(如果有的话),将其转换为ORM通常返回的任何内容,并将控制权返回给Django,而不是像ORM通常那样进行标准数据访问。
有人知道我怎么做吗?我需要什么子类?有什么具体的想法吗?
谢谢你的时间。
您可以“模拟”某些类,使其看起来像模型,但它确实代理到您的api
f.e.公司
这可能管用。。但是你需要做很多django.model兼容的事情
contrib.admin的真正功能是django Forms。本质上,管理工具基本上是自动生成一个表单来匹配一个模型,其中包含一些url.py路由。最后,除了管理工具之外,使用django表单可能会更容易。
我认为有一种比编写定制ORMS更简单的方法来获得您想要的管理集成。我在一个应用程序中使用它,允许通过他们的控制面板API管理Webfaction电子邮件帐户。
在这里查看models.py、admin.py和url.py:django-webfaction
要在管理索引页上创建条目,请使用托管为False的虚拟模型
向管理员注册该模型。
然后,您可以拦截管理url并将它们指向您自己的视图。
如果管理员提供的添加/编辑/删除操作对您的应用程序有意义,则这是有意义的。否则,最好重写管理索引或变更列表模板以包含您自己的自定义操作
相关问题 更多 >
编程相关推荐