django - 如何在自定义字段中为oracle后端制作例外?

时间:2012-12-07 10:40:50

标签: database django oracle orm django-custom-field

问题:  我正在编写自定义django模型字段。在get_db_prep_save(self,value,connection)中,我需要为oracle后端执行异常,并且与其他后端的行为不同。所以我正在寻找最好,最正式,最优雅的方式。

声明:  我不接受答案说:“使用settings.DATABASES并寻找django.db.backends.oracle”,因为它完全错了。使用设置我无法确定我当前使用的是哪个数据库(默认或其他),oracle后端路径将来可能会从django.db.backends.oracle更改为其他内容。我正在寻找的是在将自定义字段保存到数据库时检查我是否正在处理oracle的最佳方法。

2 个答案:

答案 0 :(得分:0)

查看docs

  

将用于查询的特定连接作为连接参数传递。这允许您在需要时使用特定于后端的转换逻辑。

因此,connection参数可以为您提供有关您要连接的后端的信息。 对于将要执行保存的实际DB_ALIAS,connection参数应该是一个代理对象(请查看此code)。

答案 1 :(得分:-1)

我讨厌回答我自己的问题,但我发现正确的答案是:

connection.vendor