我正在对我的新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 shell中执行此操作时,我得到了正确的响应:
from my_app.models import Places
Places.objects.get(name='home').confirmed
>>> True
当在我的应用程序中使用unittest(manage.py test myapp)执行相同的代码时,我收到错误:
Places matching query does not exist django
当我尝试使用PDB时,我发现Django正在读取数据库为空(空集)而不是存储任何数据。
我也在代码中尝试过RAW SQL,但也失败了,但在shell中工作。
我在sql本身检查了数据库并且数据存在。我执行了等效的SQL代码,它也返回True。
这是Django中的错误吗?
答案 0 :(得分:4)
总是对新的空数据库执行单元测试。您是否在测试的设置步骤中创建了数据,或者提供了数据夹具?