It worked Jim thanks so much for going through the process of writing and testing the code.
I'm new to web2py, is there any preference as to where that statement goes: controller or model? much appreciated, Alex On Thu, Feb 21, 2013 at 8:31 PM, Jim S <j...@qlf.com> wrote: > Add this line before creating your smartgrid: > > db.Word.dictionaryTypeID.represent = lambda s,r: s.dictionaryName > > Does that help? It worked for the trimmed down model I made... > > -Jim > > > On Thursday, February 21, 2013 9:16:39 PM UTC-6, Alex Glaros wrote: >> >> db.define_table('HumanLanguage',Field('languageName','string'),Field('forumLocations','string'),Field('comments','string'), >> auth.signature) >> db.HumanLanguage.languageName.requires = IS_NOT_EMPTY() >> >> db.define_table('Word',Field('wordName','string'), Field ('definition', >> 'string'), Field('languageID','reference >> HumanLanguage'),Field('dictionaryTypeID','reference >> DictionaryType'),Field('wordReferenceModelID','reference >> WordReferenceModel'), Field('comments','string'), auth.signature) >> db.Word.languageID.requires = IS_IN_DB(db, 'HumanLanguage.id', >> '%(languageName)s',zero=T('choose one')) >> db.Word.dictionaryTypeID.requires = IS_IN_DB(db, 'DictionaryType.id', >> '%(dictionaryName)s',zero=T('choose one')) >> db.Word.wordName.requires = IS_NOT_EMPTY() >> db.Word.wordReferenceModelID.requires = IS_NULL_OR(IS_IN_DB(db, >> 'WordReferenceModel.id', '%(wordID)s',zero=T('choose one'))) >> >> ## Uses English language as standard connector between all languages. >> WordID below points to the English version of the word that is the >> standard. The reason "Is_Null" clause is there is because the first time >> the word is encountered, it won't be in the English dictionary >> db.define_table('WordReferenceModel',Field('wordID','reference >> Word'),Field('dictionaryTypeID','reference DictionaryType'), >> Field('picture', 'upload', default=''),Field('comments','string'), >> auth.signature) >> db.WordReferenceModel.wordID.requires = IS_NOT_EMPTY() >> db.WordReferenceModel.wordID.requires = IS_IN_DB(db, 'Word.id', >> '%(wordName)s',zero=T('choose one')) >> db.WordReferenceModel.dictionaryTypeID.requires = IS_IN_DB(db, >> 'DictionaryType.id', '%(dictionaryName)s',zero=T('choose one')) >> ## dictionary_type_query = (db.DictionaryType.dictionaryName=='English') >> ## /* need this too for wordReferenceModel */ >> >> ## Dictionary type means what category of dictionary is it? Medical, >> computer,etc. There is one for each language. >> db.define_table('DictionaryType',Field('dictionaryName','string'),Field('comments','string'), >> Field('languageID','reference HumanLanguage'), >> Field('DictionaryReferenceModelID', 'reference >> DictionaryReferenceModel'), auth.signature) >> db.DictionaryType.dictionaryName.requires = IS_NOT_EMPTY() >> db.DictionaryType.languageID.requires = IS_IN_DB(db, 'HumanLanguage.id', >> '%(languageName)s',zero=T('choose one')) >> db.DictionaryType.DictionaryReferenceModelID.requires = IS_IN_DB(db, >> 'DictionaryReferenceModel.id', '%(DictionaryTypeID)s',zero=T('choose one')) >> >> ## Uses English dictionary type as standard connector between all >> dictionary types. DictionaryType.id points to the English DictionaryType.id >> db.define_table('DictionaryReferenceModel', >> Field('DictionaryTypeID','reference >> DictionaryType'),Field('comments','string'), >> auth.signature) >> db.DictionaryReferenceModel.DictionaryTypeID.requires = IS_NOT_EMPTY() >> >> db.define_table('Synonyms',Field('synonymName','string'),Field('wordID','reference >> Word'),Field('comments','string'), >> auth.signature) >> db.Synonyms.synonymName.requires = IS_NOT_EMPTY() >> db.Synonyms.wordID.requires = IS_NOT_EMPTY() >> db.Synonyms.wordID.requires = IS_IN_DB(db, 'Word.id', >> '%(Word)s',zero=T('choose one')) >> >> db.define_table('PublicComments',Field('wordID','reference >> Word'),Field('comments','string'), >> auth.signature) >> db.PublicComments.comments.requires = IS_NOT_EMPTY() >> db.PublicComments.wordID.requires = IS_NOT_EMPTY() >> db.PublicComments.wordID.requires = IS_IN_DB(db, 'Word.id', >> '%(wordName)s',zero=T('choose one')) >> >> >> On Thursday, February 21, 2013 6:10:56 PM UTC-8, Jim S wrote: >>> >>> Can you show the model code? >>> >>> -Jim >>> >>> On Thursday, February 21, 2013 7:35:52 PM UTC-6, Alex Glaros wrote: >>>> >>>> Instead of *db.Word.dictionaryTypeID* displaying (which is a foreign >>>> key in db.Word), I’d like a value from the foreign table to appear, i.e., >>>> DictionaryType. dictionaryName. >>>> >>>> >>>> In the example below, when user cascades down to the Word table, it >>>> only shows db.Word.dictionaryTypeID but I’d like to add the corresponding >>>> DictionaryType. dictionaryName value to it. >>>> >>>> >>>> def search_lang(): >>>> >>>> grid = SQLFORM.smartgrid(db.HumanLanguage, >>>> linked_tables=['Word','DictionaryType'], fields = [db.HumanLanguage.id, >>>> db.HumanLanguage.languageName, db.Word.id, db.Word.wordName, >>>> db.Word.definition, db.DictionaryType.dictionaryName, >>>> >>>> *db.Word.dictionaryTypeID*], >>>> >>>> user_signature=False) >>>> >>>> return dict(grid=grid) >>>> >>>> >>>> id<http://127.0.0.1:8000/tech_dictionary/default/search_lang/HumanLanguage/Word.languageID/1?keywords=&order=Word.id> >>>> >>>> Wordname<http://127.0.0.1:8000/tech_dictionary/default/search_lang/HumanLanguage/Word.languageID/1?keywords=&order=Word.wordName> >>>> >>>> Definition<http://127.0.0.1:8000/tech_dictionary/default/search_lang/HumanLanguage/Word.languageID/1?keywords=&order=Word.definition> >>>> >>>> Dictionarytypeid<http://127.0.0.1:8000/tech_dictionary/default/search_lang/HumanLanguage/Word.languageID/1?keywords=&order=Word.dictionaryTypeID> >>>> 1 beaker glass jar 1 >>>> >>>> >>>> Want to replace the "1" under Dictionarytypeid with value from foreign >>>> table. >>>> >>>> Thanks, >>>> >>>> Alex Glaros >>>> >>> -- > > --- > 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 web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.