将Django admin和Site部署为不同的应用程序

时间:2019-06-06 09:59:08

标签: django

有没有办法分别部署Django Admin和您的主应用程序,尽管它们共享相同的模型/业务逻辑服务。

我来自Grails的背景,您可以在其中创建一个插件,该插件可以保存您的实体和通用业务逻辑,并且该插件可以被其他部署的应用程序利用,尽管使用同一数据库也可以单独扩展。您不必为每次更改都重新打包插件,而只需将其同级文件夹保存到其他项目中即可。

我可以用Django实现类似的功能吗?

2 个答案:

答案 0 :(得分:1)

假设使用典型的设置,为了变得有用,Django Admin需要访问项目的应用程序及其模型。

因此,您描述的设置至少需要:

  • 仅具有Django Admin的简单URLconf
  • 所有需要管理的应用程序的
  • 模型及其管理绑定
  • 具有数据库凭据的设置

即使您的模型和管理员绑定不依赖于代码库的其他部分, 将上述组件提取到一个单独的项目中,然后保留所有内容 同步听起来很难。

总结:我会说很难,但是如果您确实需要某些东西, 但是Django Admin的设计并没有考虑到这种用例。

答案 1 :(得分:0)

Django管理员实际上通过placing it on its own url与主应用程序分开。即使他们知道管理员url,用户也无法登录该站点的管理员,除非已通过管理员将其分配为“工作人员”状态。您可以将admin前缀设置为所需的任何内容,因此,如果要“隐藏” admin登录页面,只需使其长而随机(也有利于安全),基本上没有人,但您告诉的人甚至都知道在哪里可以找到管理站点。