Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django中为django管理员提供单独的数据库_Python_Django_Django Admin - Fatal编程技术网

Python 在django中为django管理员提供单独的数据库

Python 在django中为django管理员提供单独的数据库,python,django,django-admin,Python,Django,Django Admin,我正在尝试为一个用rails编写的应用程序构建一个用户管理界面,为此我正在使用django。我已经拥有rails应用程序中的遗留数据库,其中包含我将要管理的内容,对于这个新django应用程序上的用户管理,我想使用django admin。但我不想改变我已有的遗留数据库的结构。在执行syncdb时,我看到django在遗留数据库下创建了所有表,这不是我想要的。我现在所做的是,我在settings.py上定义了多个数据库,传统数据库是非默认数据库。这样,django在默认数据库上创建了所有与use

我正在尝试为一个用rails编写的应用程序构建一个用户管理界面,为此我正在使用django。我已经拥有rails应用程序中的遗留数据库,其中包含我将要管理的内容,对于这个新django应用程序上的用户管理,我想使用django admin。但我不想改变我已有的遗留数据库的结构。在执行syncdb时,我看到django在遗留数据库下创建了所有表,这不是我想要的。我现在所做的是,我在settings.py上定义了多个数据库,传统数据库是非默认数据库。这样,django在默认数据库上创建了所有与user/auth相关的表,从而防止更改遗留数据库的结构。但我想知道是否还有其他更好的方法,我可以做一些事情,比如,对于用户、身份验证、会话等,使用数据库A,对于其他内容,使用数据库B(遗留数据库)


谢谢。

您不需要创建第二个数据库。Django允许您从现有表生成模型。本文档提供了集成现有数据库的方法:


总之,使用
inspectdb
management命令让Django根据现有数据库为您提供模型。您仍然需要为Django特定的模型(如权限和内容类型)同步数据库。

您谈论的是身份验证表。您可以声明2个数据库,django应用程序的主数据库(“默认”)将只包含django.contrib.auth.models

您的其他产品将接受检查。您将在生成的模型的管理员中设置数据库名称,它将神奇地工作

以下是如何处理多个数据库和配置数据库:


如何指定ModelAdmin类来处理多个数据库:

是的,我从现有数据库创建了模型,并在相应的应用程序中使用这些模型来显示这些内容。但是我仍然需要为这个django应用程序提供一个身份验证系统,django是否允许我使用遗留数据库的模型(在django admin的auth,session中),而不对现有结构进行任何更改?是的,这就是我正在做的,到目前为止,它工作正常。我只是想知道我所做的是否正确。进一步了解ModelAdmin!谢谢如果要处理权限,没有更好的方法。如果你不关心权限,你可能想做一个像这样的userbackend:嗨,我也有同样的问题,想知道你是否还在使用这个方法?同样,您是否能够共享使用此路由器类的代码?德克萨斯州