gpt4 book ai didi

python - 在 Django 中获取数据库类型

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:05 24 4
gpt4 key购买 nike

<分区>

我需要能够确定 Django 运行时使用的数据库类型。

MYSQL = False
if <something goes here>:
MYSQL = True

我看到了相关的 Django 票证,但并没有完全找到我的解决方案。 ( https://code.djangoproject.com/ticket/18332 )

最好有一个解决方案,我可以确定它是 MySQL、PostgreSQL、SQLite、Oracle...等等。

我已经尝试挖掘 django.db 但看不到任何有用的东西。

我将详细说明我正在尝试做的事情,因为它似乎被误解了。这是一个独立于任何 Django 项目的测试实用程序项目。我的实用程序需要了解正在使用哪个数据库来防止非法事件。

例如,我的包支持 PostgreSQL hstore 字段,但在 SQLite 中不存在这样的字段。因此,如果他们使用 SQLite,我不想允许特定功能。

我可以访问他们与该实用程序一起使用的 Django 模型。

from my_app.models import Foo

testing_utility(Foo, **kwargs)

我的testing_utility 签名是:

def testing_utility(klass, **kwargs):
instance = klass(**kwargs)

现在,如果不是 PostgreSQL 数据库,我不想在此类上预先形成 hstore 特定功能。这是否会更清楚一些?

编辑 1:

感谢 KevinDTimm 提供的链接。看起来 Django 模型在实例化时确实有 ._state.db。当然,我的实例有一个 None 类型。 :(

>> print(instance._state.db)
None

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com