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.


Reply via email to