我正在浏览一个基本的Django网页和一个应用程序的在线教程。
到目前为止,我做的第一件也是唯一的事情是使用sqllite数据库创建项目和单个应用程序。
我已将应用正确添加到settings.py
文件中。
在应用models.py
内,我定义了一个模型。
makemigrations
命令已成功为模型创建数据库。
在创建模型类之后,我尝试编写以下测试脚本来测试模型的构造函数。此脚本与models.py
处于同一级别的app目录中。
from django.test import TestCase
from models import Foodie # the model
import os
# Create your tests here.
class TestModel(unittest.TestCase):
def test_foodie(self):
tc = Foodie()
if __name__ == '__main__':
unittest.main()
我收到错误:
builtins.IndexError: list index out of range
File "C:\WebDev\DinnerServer\Rolls\tests.py", line 2, in <module>
from models import Foodie
File "C:\WebDev\DinnerServer\Rolls\models.py", line 7, in <module>
class Foodie(models.Model):
File "C:\Python33\Lib\site-packages\Django-1.7.1-py3.3.egg\django\db\models\base.py", line 116, in >__new__
kwargs = {"app_label": package_components[app_label_index]}
(模型所在的应用标题为Rolls
)
如何或为何失败,如何设置单元测试的app_label?
答案 0 :(得分:1)
基本错误,导入语句错误。
应该是......来自Rolls.models
答案 1 :(得分:-1)
您需要在def __str__(self):
中的Foodie
模型中添加models.py
。
class Foodie(models.Model):
#some fields
def __str__(self):
# you access to model fiels here
return self.label
另请参阅doc可能对您有帮助。