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.


Reply via email to