I know this question has been asked and answered before, but I am
having errors in implementation and I feel like it's something really
silly. If anyone can point anything obvious out that I am missing,
please let me know. Basically I am trying to implement so that two
rows can not have the same combination of Invoice + SKU. Now when I
just got to the web2py admin database editor I am getting these
errors.

Thanks in Advance!


Error message:

Traceback (most recent call last):
  File "/home/msheiny/Dropbox/web2py/gluon/restricted.py", line 188,
in restricted
    exec ccode in environment
  File "/home/msheiny/Dropbox/web2py/applications/mycybersoft/models/
mycyber_model.py", line 5, in <module>
    Field('Invoice',
type='integer',requires=(IS_NOT_EMPTY(),IS_INT_IN_RANGE(1,
9999999,error_message=T('Needs to be between 1 -
9999999')),IS_NOT_IN_DB(db(db.software_database.SKU==request.vars.SKU),'software_database.Invoice')),
  File "/home/msheiny/Dropbox/web2py/gluon/dal.py", line 3904, in
__getattr__
    return self[key]
  File "/home/msheiny/Dropbox/web2py/gluon/dal.py", line 3898, in
__getitem__
    return dict.__getitem__(self, str(key))
KeyError: 'software_database'

Database in question with validator on Invoice field:

db.define_table('software_database',
    Field('Invoice',
type='integer',requires=(IS_NOT_EMPTY(),IS_INT_IN_RANGE(1,
9999999,error_message=T('Needs to be between 1 -
9999999')),IS_NOT_IN_DB(db(db.software_database.SKU==request.vars.SKU),'software_database.Invoice')),
          label=T('Invoice Number')),
    Field('Company_Name',
type='string',requires=(IS_NOT_EMPTY(),IS_IN_DB(db,'auth_user.Company','',zero=T('choose
one'))),
          label=T('Company Name')),
 
Field('Start_Date','date',default=now,writable=False,requires=(IS_NOT_EMPTY(),IS_DATE()),label=T('Start
Date')),
 
Field('Expire_Date','date',default=thirtydaysout,requires=(IS_NOT_EMPTY(),IS_DATE()),label=T('Expiration
Date')),
    Field('SKU', requires=IS_IN_DB(db,'cyber_skus.SKU','%
(SKU)s',zero=T('CyberSoft Product')),label=T('SKU')),
    Field('NumOfCopies',
type='integer',requires=IS_NOT_EMPTY(),label=T('Number of Copies')),
    Field('Comments', type='string',label=T('Optional Comments')),
    Field('Assoc_Usernames', 'list:reference auth_user'),
    format='%(username)s',
    migrate=settings.migrate)

Reply via email to