将Django管理员和站点部署为不同的应用程序

将Django管理员和站点部署为不同的应用程序,django,Django,有没有一种方法可以分别部署Django Admin和主应用程序,尽管它们共享相同的模型/业务逻辑服务 我来自Grails后台,您可以创建一个插件,该插件可以保存您的实体和公共业务逻辑,并且该插件可以被其他应用程序使用,这些应用程序通过使用相同的数据库单独部署和扩展。你不必为每一个更改重新打包你的插件,而只需将它作为你其他项目的兄弟文件夹 我可以用Django实现类似的功能吗?Django admin实际上是与主应用程序分离的。即使知道管理员url,用户也无法登录到站点的管理员,除非他们已经通过管

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

我来自Grails后台,您可以创建一个插件,该插件可以保存您的实体和公共业务逻辑,并且该插件可以被其他应用程序使用,这些应用程序通过使用相同的数据库单独部署和扩展。你不必为每一个更改重新打包你的插件,而只需将它作为你其他项目的兄弟文件夹


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

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

假设一个典型的设置,为了变得有用,Django管理员需要访问项目的应用程序及其模型

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

  • 简单的URLconf,只有Django Admin
  • 所有需要管理的应用程序的模型及其管理绑定
  • 具有数据库凭据的设置
即使您的模型和管理绑定不依赖于代码库的其他部分, 将上述组件提取到单独的项目中,然后保留所有内容 同步听起来很难

总结:我想说这很难,但如果你真的需要的话,
但是Django管理员在设计时并没有考虑到这样的用例

你可以让你的应用程序成为一个api,你可以为它提供服务,但是你希望它自己的url仍然是同一个应用程序库来澄清这一点