0

私のプログラムにバグがあるようで、かなり奇妙です。テストするために、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) でした

何か案は?ありがとう

4

1 に答える 1

0

なんてこった、遅い、11ではなくbigint(20)になるはずだったのを忘れていた、ごめんなさい!

于 2012-10-03T08:41:10.213 に答える