I have defined the following table in a model:
def define_customers():
db.define_table('customers',
Field('ActiveMember', 'boolean', default=True, label=T("Active")),
Field('FirstName', required=True, requires=IS_NOT_EMPTY(),
label=T("First name")),
Field('LastName', required=True, requires=IS_NOT_EMPTY(),
label=T("Last name")),
Field('Gender', required=True,
requires=IS_EMPTY_OR(IS_IN_SET(('Female', 'Male'))), represent=lambda
value, row: value or "", label=T("Gender")),
Field('DateOfBirth', 'date', required=False,
requires=IS_EMPTY_OR(IS_DATE(format=session.date_format)),
represent=represent_date, label=T("Date of birth")),
Field('Birthday', 'date', compute=_set_birthday, readable=False,
writable=False, requires=IS_EMPTY_OR(IS_DATE(format=session.date_format)),
represent=lambda value, row: value.strftime("%B %d")),
Field('Address', required=False, label=T("Address")),
Field('PostalCode', required=False, label=T("Postal code")),
Field('City', required=False, represent=lambda value, row: value or
"", label=T("City")),
Field('Country', required=False, represent=lambda value, row: value
or "", label=T("Country")),
Field('Email', required=True,
requires=IS_EMAIL(error_message=T('Invalid email address')),
label=T("Email")),
Field('Newsletter', 'boolean', default=True, label=T("Newsletter")),
Field('Telnr', required=False, label=T("Telephone")),
Field('Mobnr', required=False, label=T("Mobile")),
Field('Keynr', required=False, represent=lambda value, row: value
or "", label=T("Key Number")),
Field('DiscoveryID', db.discovery,
requires=IS_EMPTY_OR(IS_IN_DB(db,'discovery.id','%(Name)s')),
represent=lambda value, row: discovery_dict.get(value, None),
label=T("Discovery")),
Field('PracticeLevelID', db.practicelevels,
requires=IS_EMPTY_OR(IS_IN_DB(db,'practicelevels.id','%(Name)s')),
represent=lambda value, row: levels_dict.get(value, None),
label=T("Level")),
Field('LocationID', db.locations,
requires=IS_EMPTY_OR(IS_IN_DB(db,'locations.id','%(Name)s')),
represent=lambda value, row: locations_dict.get(value, None),
label=T("Location")),
Field('Comments', 'text', label=T("Comments")),
format='%(FirstName)s %(LastName)s',
singular=T("Customer"), plural=T("Customers")
)
However when I try to populate it in a test using the py.test sample from
here: https://github.com/viniciusban/web2py.test I get an error in
populate.py on line 234:
elif field.type == 'string':
if hasattr(field.requires, 'options'):
> options = field.requires.options(zero=False)
E TypeError: _options() got an unexpected keyword
argument 'zero'
gluon/contrib/populate.py:234: TypeError
This is the code in the test function:
from gluon.contrib.populate import populate
populate(web2py.db.discovery, 3)
populate(web2py.db.locations, 2)
populate(web2py.db.practicelevels, 3)
web2py.db.commit()
populate(web2py.db.customers, 3)
web2py.db.commit()
Could someone tell me what I'm doing wrong or whether this might be a bug?
Thank you!
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.