类型错误:__init __()采用最多2个参数(给出4)
问题描述:
我有尝试运行的Django 的考验,这是我的模型文件类型错误:__init __()采用最多2个参数(给出4)
class MountPoint(models.Model):
name = models.CharField(max_length=100)
backend = models.CharField(max_length=200,default=DEFAULT_BACKEND)
path = models.CharField(max_length=300)
def __unicode__(self):
return self.name
代码和这里的时候错误消息是类我投入测试
class MountPoint(TestCase):
def create_mountpoint(self):
name = "test"
backend = "test"
path = user_root
return MountPoint(name, backend, path)
def test_mountpoint_creation(self):
m = self.create_mountpoint()
self.assertTrue(isinstance(m, MountPoint))
self.assertEqual(m.__unicode(), m.name)
和我得到的错误消息是在下面。它说我有比预期更多的投入。
回溯(最近通话最后一个): 文件 “/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py” 18行,在test_mountpoint_creation M = self.create_mountpoint() 文件“/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py”,第15行,在create_mountpoint中 返回MountPoint(名称,后端,路径) TypeError:init()至多需要2个参数4给定)
冉1测试0.009s
失败(错误= 1)
答
我认为你必须使用关键字ARGS:
return MountPoint(name=name, backend=backend, path=path)
测试类的名称阴影模型类的名称,所以当您尝试实例化一个模型实际上,它试图创建一个测试类的新实例,显然它采用了不同的参数。顺便说一句,您的测试类重命名为'TestMountPoint' – andrean
,DEFAULT_BACKEND ='filesystem.backend.HDWrapper.DirectionHDWrapper,filesystem.backend.HDWrapper.DocumentHDWrapper' –