我的程序中似乎有一个错误,这很奇怪。为了测试,我在 manage.py shell 上运行了一些非常简单的命令。
models = Model.objects.all()
for model in models :
print model.field
output:
0
0
0
0
100004398604871
576962717
576962717
576962717
现在是奇怪的部分:
Model.objects.extra(where = ["field= 576962717"])
output:
[]
Model.objects.extra(where = ["field= 100004398604871"])
output:
[]
# But!!
Model.objects.extra(where = ["field= 0"])
output:
[a bunch of models, aka this one worked]
所以很明显,大的 int 比较有问题。我检查了我的 mysql 数据库结构和我的模型以确保它们对齐,并且它们做到了:
我的 mysql cols 被标记为 bigint(11)
我的 django 模型是 BigIntegerField(editable=False)
有任何想法吗?谢谢