Customizing SQLFORM.factory generated form

47 views
Skip to first unread message

Arun K.Rajeevan

unread,
Dec 25, 2010, 3:05:08 PM12/25/10
to web...@googlegroups.com
I've a problem in this post.
https://groups.google.com/d/msg/web2py/a5YanKxNbVU/r00jiaDasvUJ

seems it goes on a while.

I can do with SQLFORM.factory generated form,

SQLFORM.factory(db.words, db.pictures)

 but I need to change one select box with my on one.
ie., I need to change select box corresponding to db.words.lang with my own select box. (which is same as db.lang with some fields removed).
I have a list of OPTIONS. And I just need a way to change the one in custom created form.
(will save my life for the day)

Tables are following,

db.define_table('languages',
                Field('full', 'string', length=30, notnull=True, required=True),
                Field('short', 'string', length=10 , notnull=True, required=True),
                Field('natural', 'string', length=30),
                format='%(full)s - %(short)s')
                
db.define_table('words',
                Field('word', 'string', length=128, notnull=True, required=True),
                Field('lang', db.languages, notnull=True),
                Field('entry_by', db.auth_user, notnull=True, readable=False, writable=False))
                                
db.define_table('pictures',
                Field('image', 'upload', notnull=True, required=True, label='Visual Lingua'), 
                Field('words', 'list:reference words', readable=False, writable=False, required=True),
                Field('rating', 'double', default = 0, readable=False, writable=False),
                Field('entry_by', db.auth_user, notnull=True, readable=False, writable=False))

Arun K.Rajeevan

unread,
Dec 25, 2010, 3:09:00 PM12/25/10
to web...@googlegroups.com
tables have following requires too

db.languages.full.requires = [IS_NOT_EMPTY(), IS_NOT_IN_DB(db, 'languages.full')]
db.languages.short.requires = [IS_NOT_EMPTY(), IS_NOT_IN_DB(db, 'languages.short')]
db.languages.natural.requires = [IS_NOT_IN_DB(db, 'languages.natural')]

db.words.word.requires = IS_NOT_EMPTY()
db.words.lang.requires = IS_IN_DB(db, 'languages.id','%(full)s - %(short)s' )
db.words.entry_by.requires = [IS_IN_DB(db, 'auth_user.id')]

db.pictures.image.requires = [IS_NOT_EMPTY(), IS_LENGTH(262144, 4096), 
                                IS_IMAGE(minsize=(60, 60))] #min_size 4kb, max_size 256kb; min_width 60px min_height 60px
db.pictures.entry_by.requires = [IS_IN_DB(db, 'auth_user.id')]

Reply all
Reply to author
Forward
0 new messages