Yes, that seems to do it, thanks. :)
On Wed, Feb 19, 2014 at 3:58 PM, Anthony <[email protected]> wrote: > In virtual field functions, you must refer to the table name and field > name within each row object, so: > > return gi.country_code_by_addr(row.melodigram_play.from_where) > > should be: > > return gi.country_code_by_addr(row.from_where) > > That doesn't explain the problem below, but I wonder if something else is > going on there (e.g., is the app compiled, and you didn't re-compile after > making the change?). > > As an aside, if you already have a function, no need to wrap it in a > lambda -- just do: > > Field.Virtual('from_country', get_country) > > Anthony > > > On Wednesday, February 19, 2014 7:32:41 AM UTC-5, Encompass solutions > wrote: >> >> To try to triage the bug I did the following... >> import os >> import pygeoip >> #gi = pygeoip.GeoIP(os.path.join(request.folder, 'private', 'GeoIP.dat')) >> >> def get_country(row): >> return "what?" >> # -*- coding: utf-8 -*- >> db.define_table('melodigram_play', >> Field('melodigram_id', 'reference melodigram'), >> Field('when_opened', 'datetime', default = request.now), >> Field('from_where', 'string', default = request.client), >> Field.Virtual('from_country', lambda row: get_country(row)) >> ) >> db.melodigram_play.melodigram_id.requires = IS_NOT_EMPTY() >> db.melodigram_play.when_opened.requires = IS_NOT_EMPTY() >> ------------------------------------------------------------ >> ----------------------------------- >> Basically I just remove everything and returned a text object. >> This still gives me the same error. >> >> File >> "/home/encompass/Projects/melodigram/web2py/applications/melodigram/views/administration/browser.html", >> line 101, in <module> >> File "/home/encompass/Projects/melodigram/web2py/gluon/dal.py", line 7267, >> in __getitem__ >> raise ae >> AttributeError: 'Row' object has no attribute 'from_country' >> >> >> On Wednesday, February 19, 2014 1:47:45 PM UTC+2, Marin Pranjić wrote: >>> >>> most likely get_country is failing for some reason >>> >>> Marin >>> >>> >>> On Wed, Feb 19, 2014 at 9:40 AM, Jason Brower <[email protected]> wrote: >>> >>>> I have this in the model... >>>> import uuid >>>> import os >>>> import pygeoip >>>> gi = pygeoip.GeoIP(os.path.join(request.folder, 'private', >>>> 'GeoIP.dat')) >>>> def get_country(row): >>>> return gi.country_code_by_addr(row.from_where) >>>> # -*- coding: utf-8 -*- >>>> db.define_table('melodigram_play', >>>> Field('melodigram_id', 'reference melodigram'), >>>> Field('when_opened', 'datetime', default = request.now), >>>> Field('from_where', 'string', default = request.client), >>>> Field.Virtual('from_country', lambda row: get_country(row)) >>>> ) >>>> db.melodigram_play.melodigram_id.requires = IS_NOT_EMPTY() >>>> db.melodigram_play.when_opened.requires = IS_NOT_EMPTY() >>>> >>>> I can insert data... but when I try to retrieve it, it tells me the row >>>> doesn't exist: >>>> <h2>From: {{=gram_details.from_where}} : >>>> {{=gram_details.from_country}}</h2> >>>> ---- >>>> gram_details.from_where has always worked. >>>> gram_details.from_country doesn't work. >>>> >>>> >>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> 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 [email protected]. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > 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/2Shkz7T3cvQ/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

