我正在尝试执行原始 SQL 查询,如下所示
test = Poll.objects.raw('SELECT * FROM %s', ['polls_poll'])
并导致错误:
ProgrammingError at ...
(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax...
调试工具栏显示 Django 执行以下 SQL 查询:
SELECT * FROM 'polls_poll'
如果我直接在 MySQL shell 中执行此查询,它也不会工作,除非我用反引号 (`) 替换单引号 (')。
如何让 Django 使用反引号?或者我做错了什么?
环境:Django 1.6、MySQL 5.6.14、OS X 10.9。
我认为你只能通过查询参数, not 字段名称,所以它不适用于表名。
或者,您可以尝试为查询构建简单的字符串:
test_query = 'SELECT * FROM %s' % 'polls_poll'
test = Poll.objects.raw(test_query)
不过,不建议对原始查询进行字符串格式化。
更多信息:https://docs.djangoproject.com/en/dev/topics/db/sql/#passing-parameters-into-raw https://docs.djangoproject.com/en/dev/topics/db/sql/#passing-parameters-into-raw
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)