我正在使用Django 1.10和Oracle 12c。目前,Django Oracle后端(使用cx_oracle)不支持XMLType表列。这意味着我必须使用解决方法(注释)来查询使用XMLType字段的遗留表。
现在我正在添加单元测试,我需要一个更好的解决方案来处理这些XML字段。我已经创建了一个自定义字段。这成功地允许迁移脚本在我的测试数据库中正确创建表。但是,创建fixture不起作用,因为模型无法自己创建适当的SQL。
所以我的问题是,当ORM生成选择查询时,如何添加自定义字段以调用Oracle函数?
from django.db import models
class XmlField(models.TextField):
def db_type(self, connection):
return 'XMLType'
def ???some_function_I_don't_know???(self, connection):
#custom_sql_function being an oracle function we created to return
#the value of an XMLType field
return 'custom_sql_function(%s)' % self.db_column