我正在尝试实现IntegerField的子类以在Postgres数据库上使用默认方法,而不是django默认方法(我知道这是一个热门话题)。为此,我在自定义字段
上修改了以下方法 def get_db_prep_save(self, value, connection):
return 'default'
但是,当django执行SQL语句时,它看起来像这样:
INSERT INTO my_table ('default_column') VALUES ('default')
插入失败,因为default
关键字被引号括起来。以下SQL语句有效:
INSERT INTO my_table ('default_column') VALUES (default)
我注意到问题在于django通过单独传递SQL语句和参数来执行cursor.execute
的方式,从而导致default
关键字被引号括起来。
我试图找到一种解决方法,而无需重新编写postgres后端
非常感谢帮助
答案 0 :(得分:0)
from psycopg2.extensions import AsIs
def get_db_prep_save(self, value, connection):
return AsIs('default')
应该这样做。