Thank you for the suggestions, Massimo. I've tried to update the model here:
http://code.google.com/p/publicradioroadtrip/source/browse/models/db_custom.py based on your suggestions, and the example app here: http://www.web2py.com/book/default/chapter/03#A-Wiki However, if I use the line: Field('created_by', db.auth_user, default=auth.user_id, writable=False, readable=False), I receive the error: KeyError: 'auth_user' http://pastie.textmate.org/1188236 Tell me, is the issue with the user table related to the issue of making a many-to-many relationship between stories and roadtrips? Best regards, John T. On Sep 29, 6:42 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > just use > > auth.user_id > > is the same > > created_by should be type=db.auth_user > > On Sep 28, 10:31 pm, johntynan <jgty...@gmail.com> wrote: > > > > > if auth.is_logged_in(): > > me=auth.user.id > > else: > > me=None > > > On Sep 29, 5:19 am, mdipierro <mdipie...@cs.depaul.edu> wrote: > > > > what is me? Do you use auth? why the type of created_by is a string? > > > > On Sep 28, 10:01 pm, johntynan <jgty...@gmail.com> wrote: > > > > > I would like to create a many-to-many relationship in the following > > > > model, where many "stories" can appear in many different > > > > "roadtrips" (think songs to mixtapes). > > > > > db.define_table( > > > > 'roadtrip', > > > > Field('name'), > > > > Field('description', 'text'), > > > > Field('created_by',default=me,writable=False,readable=False), > > > > > Field('created_on','datetime',default=request.now,writable=False,readable=F > > > > alse) > > > > ) > > > > > db.define_table( > > > > 'story', > > > > Field('user_id', db.users,readable=False,writable=False), > > > > Field('roadtrip_id', db.roadtrip), > > > > Field('story_id', 'integer'), > > > > Field('title'), > > > > Field('latitude'), > > > > Field('longitude'), > > > > Field('comment', 'text'), > > > > Field('created_by',default=me,writable=False,readable=False), > > > > > Field('created_on','datetime',default=request.now,writable=False,readable=F > > > > alse) > > > > ) > > > > > db.story.roadtrip_id.requires=IS_IN_DB(db(db.roadtrip.created_by==me),'road > > > > trip.id','% > > > > (name)s') > > > > > I am able to create a multiple-select element on the CRUD form by > > > > simply adding "multiple=True" to this > > > > > db.story.roadtrip_id.requires=IS_IN_DB(db(db.roadtrip.created_by==me),'road > > > > trip.id','% > > > > (name)s', multiple=True) > > > > > However, I am receiving the error: > > > > > TypeError: int() argument must be a string or a number, not 'list' > > > > > I posted the traceback here:http://pastie.textmate.org/1187996 > > > > > (as an aside, is there a better way to post a traceback that is more > > > > readable, should I just copy/paste from the html error page, as > > > > opposed to the logged file under errors?)