Django (価値のあるバージョン 1.1.4) は、データベース テーブルの 1 つにあるアイテムを任意に見つけられません。問題のオブジェクト マネージャはデフォルトのものです。以下に 2 つの例を示します。1 つ目は問題の範囲を示し、2 つ目は特定の事例を示しています。
ジャンゴ:
In [5]: LocalStore.objects.all().count()
Out[5]: 1466
MySQL:
mysql> select count(*) from stores_localstore;
+----------+
| count(*) |
+----------+
| 1553 |
+----------+
1 row in set (0.00 sec)
それ自体で十分に奇妙です。DB 内にあるが表示されない単一のオブジェクトの例を次に示します。
ジャンゴ:
In [37]: LocalStore.objects.filter(id=474361)
Out[37]: []
In [39]: print LocalStore.objects.filter(id=474361).query
SELECT `stores_localstore`.`id`, `stores_localstore`.`cust_id`,
`stores_localstore`.`name`, `stores_localstore`.`lat`, `stores_localstore`.`lng`,
`stores_localstore`.`addr1`, `stores_localstore`.`addr2`, `stores_localstore`.`city`,
`stores_localstore`.`email`, `stores_localstore`.`fax`, `stores_localstore`.`phone`,
`stores_localstore`.`state`, `stores_localstore`.`url`, `stores_localstore`.`zip` FROM
`stores_localstore` WHERE `stores_localstore`.`id` = 474361
プライバシー上の理由から、MySQL クエリの正確な結果は示したくありませんが、データベースの行が返されることだけを述べておけば十分でしょう。
これは、非常に奇妙な動作であり、Django ORM の奥深くにある潜在的なバグであると私は思います。しかし、明らかなことを見落としている可能性もあります。それは何でしょうか?