Discuss / Python / 测试代码中 User(id='02',name='song'......)这里,如果不把所有参数都写进去的话,例如不写id,就会提示KeyError 'id',默认值无效。请问这是为什么?

测试代码中 User(id='02',name='song'......)这里,如果不把所有参数都写进去的话,例如不写id,就会提示KeyError 'id',默认值无效。请问这是为什么?

Topic source

泽屁

#1 Created at ... [Delete] [Delete and Lock User]

import asyncio

import orm

from models import User,Blog,Comment

async def test(loop):

    await orm.create_pool(loop,user='root', password='', db='awesome',host='localhost')

    u = User(id='02',name='song', email='test@example.com',admin=False, password='1234567890', image='about:blank',create_at=0.2)

    await u.save()

if __name__ == '__main__':

    loop = asyncio.get_event_loop()

    loop.run_until_complete(test(loop))

    print('test finished')

    loop.close()

发生异常: KeyError

'id'

File "E:\pysource\awesome-python3-webapp\www\orm.py", line 156, in __getattr__ return self[key] File "E:\pysource\awesome-python3-webapp\www\orm.py", line 167, in getValueOrDefault value = getattr(self,key,None) File "E:\pysource\awesome-python3-webapp\www\orm.py", line 177, in save args = list(map(self.getValueOrDefault,self.__mappings__)) File "E:\pysource\awesome-python3-webapp\www\test.py", line 8, in test await u.save() File "E:\pysource\awesome-python3-webapp\www\test.py", line 12, in <module> loop.run_until_complete(test(loop))


  • 1

Reply