Just to be clear, he isn't asking just to remove quotes, but to specify 
your reference columns as:

db.table_name

instead of

'reference table_name'

-Jim

On Friday, February 22, 2013 7:14:18 PM UTC-6, Alex Glaros wrote:
>
> thanks for giving it a shot but depending upon whether I use quotes or 
> not, either the data column disappears from the web page or I get errors
>
> On Fri, Feb 22, 2013 at 1:47 PM, Kyle Flanagan 
> <kylefl...@gmail.com<javascript:>
> > wrote:
>
>> Have you tried adding a format to your tables and defining your tables 
>> using objects instead of 'reference...'?
>>
>> I'm no web2py expert by any means, but I had a similar situation and when 
>> I changed the reference for my foreign id to db.other_table instead of 
>> 'reference other_table,' the format defined for that table was used instead 
>> of the id.
>>
>> Something like this:
>> db.define_table('HumanLanguage',
>>     Field('languageName','string'),
>>     Field('forumLocations','string'),
>>
>>     Field('comments','string'),
>>  
>>     format = '%(languageName)s'), # define a format
>>     auth.signature)
>> db.HumanLanguage.languageName.requires = IS_NOT_EMPTY()
>>
>> ##
>> ## Define DictionaryReferenceModel and WordReferenceModel above here
>> ## DictionaryReferenceModel, WordReferenceModel should have a format
>> ##
>>
>>
>> ## 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',db.HumanLanguage ), # changed to object
>>     Field('DictionaryReferenceModelID', db.DictionaryReferenceModel), # 
>> changed to object
>>     format = '%(dictionaryName)s', # define format
>>
>>     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'
>> ))
>>
>>
>> db.define_table('Word',
>>
>> Field('wordName','string'), 
>> Field ('definition','string'), 
>> Field('languageID', db.HumanLanguage ), # changed to object
>> Field('dictionaryTypeID',db.DictionaryType), # changed to object
>> Field('wordReferenceModelID',db.WordReferenceModel), # changed to object
>>
>> 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')))
>>
>>
>>
>>
>>
>>
>>
>> On Friday, February 22, 2013 2:48:19 PM UTC-6, Alex Glaros wrote:
>>>
>>> thanks for offering to take a look.  
>>>
>>> Screen shots here: 
>>> https://docs.google.com/document/d/1e517YRN8FK08vqsVWmp1UuZ0LLevCNlkrhWyCkBQ7uQ/edit?usp=sharing
>>>
>>> Alex
>>>
>>> On Friday, February 22, 2013 12:16:39 PM UTC-8, Jim S wrote:
>>>>
>>>> Sorry, I'm kinda lost in what you're trying to do.  Can you show it in 
>>>> code or screen shots?
>>>>
>>>> -Jim
>>>>
>>>>
>>>> On Fri, Feb 22, 2013 at 12:08 PM, Alex Glaros <alexg...@gmail.com>wrote:
>>>>
>>>>> There is a grandparent (HumanLanguage), parent (DictionaryType), child 
>>>>> (Word), relationship.  If I go straight from the grandparent to the 
>>>>> child, 
>>>>> "represent" works.  
>>>>> (First I click on HumanLangages, then I click on Word)
>>>>>
>>>>> If I go from the parent to the child, I get this message: <type 
>>>>> 'exceptions.TypeError'> <lambda>() takes exactly 2 arguments (1 given)
>>>>> (First I click on HumanLangages, then I click on DictionaryType, then, 
>>>>> I click on Word)
>>>>>
>>>>> If I reduce the number of parms to db.Word.dictionaryTypeID.represent 
>>>>> = lambda id: db.DictionaryType(id).dictionaryName, then it works if I go 
>>>>> from the parent to the child, but if I go from the grandparent to the 
>>>>> child, I get <type 'exceptions.TypeError'> <lambda>() takes exactly 1 
>>>>> argument (2 given).
>>>>>
>>>>> If a join was allowed, it would solve the problem but I think they are 
>>>>> not supported in smartgrid. 
>>>>>
>>>>> Any ideas would be much appreciated,
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Alex
>>>>>
>>>>>
>>>>> On Friday, February 22, 2013 5:24:48 AM UTC-8, Jim S wrote:
>>>>>
>>>>>> Depends on whether or not you want that behavior globally or not. 
>>>>>>  Remember, your model gets executed on every request.  So, if you want 
>>>>>> that 
>>>>>> behavior globally I'd put it there.  If you just need it for one 
>>>>>> instance, 
>>>>>> put it in the controller.
>>>>>>
>>>>>> -Jim
>>>>>>
>>>>>>
>>>>>> On Fri, Feb 22, 2013 at 12:20 AM, Alex Glaros <alexg...@gmail.com>wrote:
>>>>>>
>>>>>>> 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+un...@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+un...@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+un...@googlegroups.com.
>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>  
>>>>>  
>>>>>
>>>>
>>>>  -- 
>>  
>> --- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/web2py/va56WuVvbqI/unsubscribe?hl=en.
>> To unsubscribe from this group and all its topics, send an email to 
>> web2py+un...@googlegroups.com <javascript:>.
>>
>> 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