我在我的项目中使用Django Rest Framework。我已经写过测试:
class PatientTests(APITestCase):
def test_create_patient(self):
url = reverse('patient-list')
data = {'firstname': 'ivan', 'lastname': 'ivanov'}
response = self.client.post(url, data)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(Patient.objects.count(), 1)
self.assertEqual(Patient.objects.get().firstname, 'ivan')
def test_get_patient(self):
url = reverse('patient-detail', args=[1])
response = self.client.get(url)
self.assertEqual(response.data, {'firstname': 'ivan'})
models.py
class Patient(models.Model):
firstname = models.TextField()
lastname = models.TextField()
secondname = models.TextField()
class Meta:
db_table = "patient"
managed = False
def __str__(self):
return ' '.join([
self.firstname,
self.lastname,
])
运行测试时,出现错误:“ django.db.utils.ProgrammingError:关系“患者”不存在”。据我了解,如果未在测试数据库中创建表,则会发生此错误。我必须做什么?谢谢
首先从项目中删除所有.pyc文件,然后依次运行以下命令。
$ django-admin.py migrate auth
$ django-admin.py migrate contentypes
$ django-admin.py migrate sites
$ django-admin.py migrate YOUR_USER_APP
$ django-admin.py migrate
如果这不起作用,则对所有应用程序一一使用makemigrations,如下所示:
$ python manage.py makemigrations
$ python manage.py migrate --fake
并确保删除所有扩展名为.pyc的文件。
为此,请从您的代码中删除“ managed = False”。该错误是因为数据库中没有名为“病人”的表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句