新しい Django コードでテストを実行しています。私は次のモデルを持っています:
class Places(models.Model):
name = models.CharField(max_length=20)
street = models.CharField(max_length=50)
number = models.IntegerField()
confirmed = models.BooleanField()
notes = models.TextField()
def __unicode__(self):
return self.address
class Meta:
db_table = "Places" # to prevent the prefixes from being added on
manage.py シェルでこれを行うと、正しい応答が得られます。
from my_app.models import Places
Places.objects.get(name='home').confirmed
>>> True
この同じコードがユニットテスト (manage.py test myapp) の下の my アプリで実行されると、次のエラーが表示されます。
Places matching query does not exist django
PDB を試してみたところ、Django がデータベースを空 (空のセット) として読み取っており、データを保存していないことがわかりました。
コードで RAW SQL も試しましたが、これも失敗しましたが、シェルで動作しました。
SQL自体でデータベースを確認したところ、データが存在します。同等の SQL コードを実行したところ、True も返されます。
これは Django のバグですか?