【问题标题】:accessing various schemas in Django admin interface?在 Django 管理界面中访问各种模式?
【发布时间】:2011-04-13 06:13:13
【问题描述】:

我正在使用 mysql 数据库。我有许多带有许多表的模式。我想为不同模式中的各种表创建一个 Django 管理界面。目前对于单个架构,我正在使用这样的设置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'schema1',                      
        'USER': 'test',                     
        'PASSWORD': 'test',                  
        'HOST': 'example.abc.com',                     
        'PORT': '',                      
    }

创建应用程序后,将为我在该应用程序的 admin.py 中为此架构注册的任何模型创建管理界面。现在我想创建另一个应用程序,在其 admin.py 中注册另一个模式的模型。这些模型将属于不同的模式。现在如何为指向不同架构的第二个应用程序创建管理界面?

是否可以使用两个不同的 settings.py 和两个不同的管理界面创建两个 Django 项目? (这样每个人都会指向不同的架构。)

我已经在 Google 上搜索了很多关于此的内容。但是找不到任何信息。可能有一个简单的方法,我以错误的方式处理这个问题。任何帮助表示赞赏。

提前致谢。

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    【讨论】:

    • 谢谢。我以前试过这个,但我在那里遇到了一个问题。在创建新对象时,它指的是默认数据库,而不是 MultiDBAdmin 中指定的数据库。在堆栈跟踪中,我可以看到错误在 django/db/transaction.py - commit_on_success 方法中。在查看源代码后,我发现 db 参数是作为 None 传递的。所以它采用默认数据库。我意识到这应该是一个单独的帖子本身。长话短说,我断定这是一个错误,并开始寻找一种更简洁的方式,比如一个数据库的管理界面......
    【解决方案2】:

    我不太确定您的意思是要处理不同的数据库还是只注册不同的模型。如果你想在不同的管理站点有不同的模型,你可以register multiple admin sites with different models。然后,您可以使用“/admin”访问一个站点,另一个使用“/otheradmin”。也许您发现 django-admin-tools 对在管理员中自定义模型/应用程序的显示很有用!

    【讨论】:

    • 我希望每个数据库都有一个管理员。有可能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2011-09-16
    • 2012-10-01
    • 2015-11-05
    • 2016-05-08
    • 2015-06-11
    相关资源
    最近更新 更多