Django自定义模型字段

时间:2018-04-06 03:25:21

标签: python django django-models

我正在使用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

0 个答案:

没有答案