Oops, of course I did change the default as advised:
Field('membership_id', db.auth_membership, default=0),
Field('membership_id', auth.settings.table_membership, default=0),
On Oct 21, 10:13 pm, Luther Goh Lu Feng <[email protected]> wrote:
> Thanks for the tip.
>
> I tried the uncommenting the 2 lines separately and got the following
> errors. Any tips?
>
> "Field('membership_id', db.auth_membership, default=''),":
>
> Traceback (most recent call last):
> File "/home/luther/roverus/gluon/restricted.py", line 188, in
> restricted
> exec ccode in environment
> File "/home/luther/roverus/applications/roverus/models/rmodels.py",
> line 18, in <module>
> Field('membership_id', db.auth_membership, default=0),
> File "/home/luther/roverus/gluon/sql.py", line 1385, in __getattr__
> return dict.__getitem__(self,key)
> KeyError: 'auth_membership'
>
> "Field('membership_id', auth.settings.table_membership, default=''),
> ":
>
> Traceback (most recent call last):
> File "/home/luther/roverus/gluon/restricted.py", line 188, in
> restricted
> exec ccode in environment
> File "/home/luther/roverus/applications/roverus/models/rmodels.py",
> line 20, in <module>
> format='%(username)s'
> File "/home/luther/roverus/gluon/sql.py", line 1365, in define_table
> t._create(migrate=migrate, fake_migrate=fake_migrate)
> File "/home/luther/roverus/gluon/sql.py", line 1726, in _create
> elif field.type.startswith('reference'):
> AttributeError: 'NoneType' object has no attribute 'startswith'
>
> On Oct 21, 9:17 pm, mdipierro <[email protected]> wrote:
>
>
>
>
>
>
>
> > They are both fine but default cannot be a string, must be 0.
>
> > On Oct 21, 6:21 am, Luther Goh Lu Feng <[email protected]> wrote:
>
> > > I have the following custom user model. I am trying to reference the
> > > membership
> > > type so that when users are created by administrators, they can assigned
> > > different roles. Attention to be drawn to the 2 lines commented out at the
> > > bottom, which I have tried to make the reference but failed. Any tips?
>
> > > db.define_table(auth.settings.table_user_name,
> > > Field('username', 'string', length=255, required=True,
> > > requires=IS_NOT_EMPTY(), unique=True, label="Username"),
> > > Field('first_name', 'string', length=255, required=True,
> > > requires=IS_NOT_EMPTY(), label="First name"),
> > > Field('last_name', 'string', length=255, required=True,
> > > requires=IS_NOT_EMPTY(), label="Last name"),
> > > Field('password', 'password', length=40, required=True,
> > > requires=[IS_NOT_EMPTY(),CRYPT(key="sha1:theultimatesuperrover")],
> > > readable=False, label="Password"),
> > > Field('last_login', 'datetime', writable=False, readable=False,
> > > update=request.now),
> > > Field('registration_key', length=512, writable=False, readable=False,
> > > default=''),
> > > Field('reset_password_key', length=512, writable=False,
> > > readable=False,
> > > default=''),
> > > Field('registration_id', length=512, writable=False, readable=False,
> > > default=''),
> > > Field('class_id', 'reference classes', default=''),
> > > #Field('membership_id', db.auth_membership, default=''),
> > > #Field('membership_id', auth.settings.table_membership, default=''),
> > > format='%(username)s'
> > > )