Django ORM能否以可靠的、与后端无关的方式存储无符号64位整数(也称为ulong64或uint64)?

9 浏览
0 Comments

Django ORM能否以可靠的、与后端无关的方式存储无符号64位整数(也称为ulong64或uint64)?

所有我看过的文档都暗示你可能能够这样做,但没有任何关于ulong64/uint64字段的官方说明。在这个领域有几个现成的选项看起来非常有希望:

  • BigIntegerField...几乎可以,但是有符号的;
  • PositiveIntegerField...看起来可疑地是32位的;和
  • DecimalField...一个用Python的decimal类型表示的固定指针,根据文档--当保存时可能会变成类似地繁琐和缓慢的数据库字段,类似于DECIMAL或NUMERIC PostgreSQL类型。

...所有这些看起来都可以存储这样的数字。除了没有一个能够提交成功,就像每个由休·格兰特扮演的浪漫喜剧角色一样。

我的主要条件是它能与Django支持的后端一起使用,而不需要任何类似if postgresql (...) elif mysql (...)这样的特殊情况的傻瓜式代码。然后是速度需求--这是一个用于可视化数据库应用程序中的模型字段,将对图像派生数据(例如感知哈希和提取的关键点特征)进行索引,允许按照这些图像内容进行排序和分组。

所以:有没有一个好的Django扩展或应用程序提供一种适合我目的的PositiveBigIntegerField

如果没有的话:如果有一种简单可靠的方法来使用Django的默认ORM来存储无符号64位整数,我想知道。看,我不是二进制高手;我得在纸上做补码--所以如果你的方法涉及一些位移的诡计,请毫不犹豫地解释一下,即使你认为它很明显。提前谢谢。

0