Django 无法在“默认”以外的其他数据库中创建超级用户

2023-12-24

这是一个错误还是我错了? 我正在创建一个超级用户,但 django 想要在错误的数据库中创建一个表,尽管我的路由器似乎可以工作:

设置.py

DATABASES = {
      'intern_db': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'django_cartons',
            'USER': 'root',
            'PASSWORD' : '',
      },
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'cartons',
            'USER': 'root',
            'PASSWORD' : '',
    }
}

DATABASE_ROUTERS = ['web.routers.AuthRouter']

路由器.py

class AuthRouter(object):
      """
      A router to control all database operations on models in the
      auth application.
      """
      def db_for_read(self, model, **hints):
            """
            Attempts to read auth models go to auth.
            """
            print("READ ",model._meta.app_label)
            if model._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions']:
               print(True)
               return 'intern_db'
            return None

      def db_for_write(self, model, **hints):
            """
            Attempts to write auth models go to auth.
            """
            print("WRITE ",model._meta.app_label)
            if model._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions']:
               print(True)
               return 'intern_db'
            return None

      def allow_relation(self, obj1, obj2, **hints):
            """
            Allow relations if a model in the auth app is involved.
            """
            print("REL ", obj1._meta.app_label, ' ', obj2._meta.app_label)
            if obj1._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions'] or \
               obj2._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions']:
               return True
            return None

      def allow_migrate(self, db, model):
            """
            Make sure the auth app only appears in the 'auth'
            database.
            """
            if db == 'intern_db':
               return (model._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions'])
            elif model._meta.app_label in ['auth', 'contenttypes', 'admin', 'sessions']:
               return False
            return None

命令 :

$> ./manage.py createsuperuser
READ  auth
True
READ  auth
True
Username (leave blank to use 'leo'): admin
Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/mysql/connector/django/base.py", line 115, in _execute_wrapper
    return method(query, args)
  File "/usr/lib/python3.4/site-packages/mysql/connector/cursor.py", line 507, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "/usr/lib/python3.4/site-packages/mysql/connector/connection.py", line 722, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "/usr/lib/python3.4/site-packages/mysql/connector/connection.py", line 640, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1146 (42S02): Table 'cartons.auth_user' doesn't exist

如您所见,它查找不存在的“cartons.auth_user”(它应该是“django_cartons”,别名为“intern_db”) 但是,我的路由器被调用并返回正确的结果,因为我们在命令输出中看到“READ auth”和“TRUE”...

任何想法 ?


问题是系统有些损坏:它尊重某些任务的配置,但不尊重其他任务的配置(输出中的第2个“TRUE”),但不尊重其他任务并使用默认值。

即使很奇怪,这也可能是有意的(实际上没有什么禁止拥有多个管理数据库,并且允许没有自动黑暗选择)。

实际上,要在另一个数据库中创建 SU,并且对于这些命令的任何用法,您must将数据库传递到要创建它的位置明确地 :

./manage.py createsuperuser --database=intern_db

NOTE:数据库名称是配置中的别名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 无法在“默认”以外的其他数据库中创建超级用户 的相关文章

随机推荐

  • 使用 Docker 的 artifacts-credprovider 和 VSS_NUGET_EXTERNAL_FEED_ENDPOINTS

    也许您可以帮助我使用私人 NuGet feed 进行身份验证 我已经花了一天时间研究不同的解决方案并注意到这个仓库 https github com microsoft artifacts credprovider 但我仍在努力完成它 我使
  • Perl 挑战 - 目录迭代器

    有时您会听到关于 Perl 的说法 可能有 6 种不同的方法来解决同一问题 优秀的 Perl 开发人员通常具有合理的见解 可以在各种可能的实现方法之间做出选择 举一个 Perl 问题的例子 一个简单的脚本 它递归地迭代目录结构 查找最近修改
  • 自定义验证器在 FormView 中工作吗?

    我通过谷歌搜索发现很多人都在为这个问题苦苦挣扎 但我仍然没有找到正确的答案 https i stack imgur com 15jen png https i stack imgur com 15jen png 我有一个表单视图 需要检查语
  • Django ORM 中 ImageField 的默认图像

    我正在使用一个ImageField将个人资料图片存储在我的模型上 如果没有定义图像 如何设置它返回默认图像 我还没有尝试过这个 但我相对确定您可以将其设置为您所在领域的默认值 pic models ImageField upload to
  • 是否有适用于 Delphi-XE 的 LockBox 版本

    在哪里可以找到适用于 Delphi XE 的 LockBox 版本 有 Delphi 2010 版本可用Songbeamer com http www songbeamer com delphi 根据我将 Abbrvia 移植到 Delph
  • 如何生成给定集合的幂集?

    我正在为面试而学习 我在网上的 数学 类别下偶然发现了这个问题 生成给定集合的幂集 int A 1 2 3 4 5 int N 5 int Total 1 lt lt N for int i 0 i lt Total i for int j
  • DataGridView 在最后一行之后显示一些额外的空间

    我有一个Panel我在其上放置了一个控件DataGridView控件 显示来自 SQL Server 的数据 它工作得很好 除了当我将滚动条移动到底部时出现不必要的空间 我缩短了高度 但空间仍然存在 My DataGridView以编程方式
  • (sql) 当数据类型为文本时如何使用 count() 方法?

    select count category from list where category like action 上面是我想要运行的查询 但是 当我运行该查询时 我得到 数据类型错误 有没有其他方法count 或者 我该如何使用coun
  • 寻找将变量插入对象(如果不为空)的简写

    我经常有几个命名变量 如果它们不为空或未定义 我想将它们放入一个对象中 JavaScript 有几个很好的构建对象的快捷方式 所以我想一定有一个适合这个用例的快捷方式 我通常会做这样的事情 但它是如此冗长 function foo a b
  • 表变量可以用在 select 语句的 where 子句中吗?

    我有一个正在执行两步查询的存储过程 第一步是从表中收集 VARCHAR2 类型字符的列表 并将它们收集到表变量中 定义如下 TYPE t cids IS TABLE OF VARCHAR2 50 INDEX BY PLS INTEGER v
  • 多对多自引用表

    有没有好的方法来实现单表中行之间的多对多关系 示例 存储单词同义词的表 list of words CREATE TABLE word id integer PRIMARY KEY word varchar 32 NOT NULL UNIQ
  • 将文件 bin\EntityFramework.SqlServer.xml 复制到 ..\bin\EntityFramework.SqlServer.xml 时出错失败

    当我尝试发布 ASP NET MVC 4 项目时 出现以下错误 错误 1 将文件 bin EntityFramework SqlServer xml 复制到 obj Debug Package PackageTmp bin EntityFr
  • 在C++中通过迭代器从向量中获取相邻的元素对

    我想迭代向量中的所有相邻对元素 例如 如果我有一个向量 1 2 3 4 我希望我的迭代器返回以下内容 1 2 2 3 3 4 我知道如何使用以下命令一次迭代一个元素 vector
  • pandas 重新定义 isnull 以忽略 'NA'

    作为数据分析练习的一部分 我正在将 Excel 工作表读入 pandas 数据框 df pd ExcelFile file xlsx parse 0 nullcounts df isnull sum to frame null record
  • 如何实现霍夫变换?

    如何实施霍夫变换 http en wikipedia org wiki Hough transform在文本图像上 我正在寻找伪代码 最终这将在java中 以下是一些背景信息 给定图像 确定直线的方程y mx b 通常 霍夫变换以极坐标表示
  • 是否可以反转显示的顺序错误?

    当使用 GHC 编译有错误的程序时 错误会按升序显示 这会导致第一个错误被推到控制台上 因此如果您首先修复第一个错误 则需要向上滚动 这可能很烦人 是否可以要求 GHC 按行降序打印错误 您可以使用 freverse errorsGHC 编
  • Echarts3(百度)工具提示中的彩色圆形

    Echarts3 百度 工具提示中的彩色圆形 默认情况下 工具提示具有与图形相同颜色的圆形 如下所示 http echarts baidu com gallery editor html c candlestick brush http e
  • NSXMLParser:非 ASCII 字符的意外结果

    我正在尝试通过 REST Web 服务下载 XML 格式的数据 我已经使用 NSXMLParser 创建了解析器 并在 TableView 中可视化数据 当我在 XML 文档中遇到带有重音的句子时 我遇到了问题 在我发现的一些研究中this
  • git diff HEAD 和 HEAD~ 区别[重复]

    这个问题在这里已经有答案了 我正在搜索工作树和上次提交之间的差异 并在 Stackoverflow 上发现了这个已接受的答案 有人可以解释一下 HEAD 和 HEAD 实际上指的是什么吗 因为答案中没有解释 我无法从谷歌中弄清楚 Thank
  • Django 无法在“默认”以外的其他数据库中创建超级用户

    这是一个错误还是我错了 我正在创建一个超级用户 但 django 想要在错误的数据库中创建一个表 尽管我的路由器似乎可以工作 设置 py DATABASES intern db ENGINE mysql connector django N