私のプログラムにバグがあるようで、かなり奇妙です。テストするために、manage.py シェルでいくつかの非常に単純なコマンドを実行しました。
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列はbigint(11)とラベル付けされていました
私のdjangoモデルは BigIntegerField(editable=False) でした
何か案は?ありがとう