web2py - 评估字符串类型字段中的值
问题描述
我有以下代码:
1) table "keys" with Field ('kcv', 'string')
2) grid = SQLFORM.grid(db.keys, user_signature=False)
当我尝试在 kcv 字段中编辑或创建值为 9E2 的记录时,我在新记录的 kcv 字段中得到“900”。如何在不评估的情况下在记录中获取字符串“9E2”?为什么 web2py 试图解释字符串字段中的值?
解决方案
如果您使用 SQLite,您可能最初将该字段定义为 type double
(或decimal
),后来“迁移”为 type string
。如此处所述,此类迁移在 SQLite 中没有影响,因此 SQLite 将继续将列视为数字并在可能的情况下将值强制转换为数字(SQLite 不会抱怨在列中存储非数字字符串,因为它没有刚性列types - 它只是具有 type affinities,它确定可能发生哪些类型的强制 - 请参阅https://www.sqlite.org/datatype3.html)。
您必须从正确的列类型开始重新创建表。
推荐阅读
- javascript - 使用 Lerna 将 JavaScript 导入 TypeScript 应用程序
- java - 一个 osgi 捆绑包可以成为生产者,而它从另一个捆绑包中消费吗?
- c# - sed一个udp数据包到openvpn的方法是什么
- java - “我猜你的年龄”游戏无法正常运行
- javascript - JavaScript 生成带有特殊字符 JSON 的标题
- mediawiki - 哪个版本的 MediaWiki 出现了“页面预览”功能?
- react-native - 如何在反应原生应用程序中跟踪设备上的所有图像?
- c - 在C中使用'for'循环是否可以重复字符串文字?
- r - feasts 包的 gg_season 基本示例中的错误
- python - 使用python从S3存储桶下载后加载pickle文件的问题