目录
前言
解决办法(中标麒麟)
解决办法(windows)
前言
今天我将项目部署到中标麒麟服务器,发现原本好使的功能,只要一做添加操作就报如下错误。
虽然报错,但数据还是添加了进去,这让我十分费解。
解决办法(中标麒麟)
问题出现在返回新增结果时候。通过查找发现是django_dmpython中自带文件调用方法时候的原生语法错误。文件目录:
/lib/python3.9/site-packages/django_dmPython/operations.py
错误语句:
query = 'select %s from %s where rowid = %s' %(self.quote_name(pk_name), self.quote_name(table_name), cursor.lastrowid)
语句错误的原因:where 条件查询中如果条件是字符串需要在语句中标记为字符串。
解决方式:修改本文件中语句为:
query = """select %s from %s where rowid = '%s'""" %(self.quote_name(pk_name), self.quote_name(table_name), cursor.lastrowid)
大功告成!!!
解决办法(windows)
我在windows上也遇到过同样的错误,修改方式跟中标麒麟(Linux)有点区别。
还是这个文件,找到它。
搜索如下语句:
query = 'select %s from %s where rowid = %s' %(self.quote_name(pk_name), self.quote_name(table_name), cursor.lastrowid)
将此语句替换为:
query = "select {} from {} where rowid = '{}'".format(self.quote_name(pk_name), self.quote_name(table_name), cursor.lastrowid)
大功告成!!!