我有三个字段必须在表中是唯一的,基于answer to this question,我尝试了以下几点(我想我理解这一点,但显然不是.猴子-看,猴子-做):
db.define_table('Person_certification',
Field('Person', db.Person),
Field('Certification', db.Certification),
Field('Start_date', 'date',
requires=IS_NOT_IN_DB(db(db.Person_certification.Person==request.vars.Person
& dp.Person_certification.Certification==request.vars.Certification),
'Person_certification.Start_date')),
Field('End_date', 'date'),
format='%(Person)s %(Certification)s')这三个字段是Person、Certification和Start_date。当我试着用它时,我得到:
<type 'exceptions.KeyError'> 'Person_certification'
回溯指的是“要求”行。(表中已经有数据(三个字段上没有重复的数据);代码是否试图在选择期间进行检查?)
我在这里错过了什么?
发布于 2012-06-26 03:37:57
对不起,原来的答案是错误的(现在修正了)。因为还没有定义表,所以不能在表定义本身中引用它。相反,在表定义之后设置验证器:
db.Person_certification.start_date.requires = IS_NOT_IN_DB(...)https://stackoverflow.com/questions/11200225
复制相似问题