I assume it is
db.dog.owner.represent = lambda value: "%s" % db.person[value].name
The stacktrace you get is because one of your records has owner==None
hence db.person[value] is also None and None has no .name. It is not a
bug. You are doing different queries or using different datasets.
Anyway if you do
db.define_table('person', Field('name'), format='%(name)s')
db.define_table('dog', Field('nickname'), Field('owner', db.person))
the requires is set automatically and should take care of this
exception.
On Apr 7, 2010, at 10:01 PM, Thadeus Burgess wrote:
I am defining this function.
db.define_table('person', Field('name'))
db.define_table('dog', Field('nickname'), Field('owner', db.person))
db.dog.owner.represent = lambda value: "%s" % db.owner[value].name
This works in sql.py
This does not work in dal.py
You said you made changes, I tested, works just fine on sql.py, and
has been for quite a while, however I get that stacktrace when I use
dal.py.
-Thadeus
On Wed, Apr 7, 2010 at 8:34 PM, mdipierro <mdipie...@cs.depaul.edu>
wrote:
I guess I do not understand. Who defined this represent function? is
it not in your code? Are you saying this is a bug in sql.py?
On Apr 7, 7:48 pm, Thadeus Burgess <thade...@thadeusb.com> wrote:
No.
For dal.py to be accepted it has to work exactly like sql.py
Therefore I cannot make ANY code changes if we want a new DAL.
-Thadeus
On Wed, Apr 7, 2010 at 5:31 PM, mdipierro
<mdipie...@cs.depaul.edu> wrote:
This
db.TableA.id_TableB.represent = lambda value: "%s" %
db.TableB[value].name
should be
db.TableA.id_TableB.represent = lambda value: (db.TableB[value]
or
{}).get('name','anonymous')
On Apr 7, 1:36 pm, Thadeus Burgess <thade...@thadeusb.com> wrote:
Traceback (most recent call last):
File "/home/tburgess/Applications/web2py/gluon/restricted.py",
line
173, in restricted
exec ccode in environment
File "/home/tburgess/Applications/web2py/applications/pms/views/
default/index.html",
line 62, in <module>
<thead>
File "/home/tburgess/Applications/web2py/applications/pms/
models/common.py",
line 197, in <lambda>
db.TableA.id_TableB.represent = lambda value: "%s" %
db.TableB[value].name
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
2402,
in __getitem__
return self._db(self.id == key).select().first()
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
3276, in select
return
self._db._adapter.select(self._query,*fields,**attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
507, in select
query = self.SELECT(query,*fields, **attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
433, in SELECT
for field in self.db[table]:
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
2102,
in __getitem__
return dict.__getitem__(self, str(key))
KeyError: 'None'
-Thadeus
On Mon, Apr 5, 2010 at 6:00 PM, mdipierro
<mdipie...@cs.depaul.edu> wrote:
uploading fix. please check it. Thanks for testing this.
On Apr 5, 3:59 pm, Thadeus Burgess <thade...@thadeusb.com> wrote:
Traceback (most recent call last):
File "/home/tburgess/Applications/web2py/gluon/
restricted.py", line
173, in restricted
exec ccode in environment
File "/home/tburgess/Applications/web2py/applications/pms/
controllers/default.py",
line 278, in <module>
File "/home/tburgess/Applications/web2py/gluon/globals.py",
line 96,
in <lambda>
self._caller = lambda f: f()
File "/home/tburgess/Applications/web2py/applications/pms/
controllers/default.py",
line 76, in duplicates
orderby=db.potentials.A
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
3258, in select
return
self._db._adapter.select(self._query,*fields,**attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
512, in select
return self.parse(rows,self._colnames)
File "/home/tburgess/Applications/web2py/gluon/sql.py", line
706, in parse
(rid._table, rid._record) = (db[referee], None)
NameError: global name 'db' is not defined
-Thadeus
On Mon, Apr 5, 2010 at 3:01 PM, mdipierro
<mdipie...@cs.depaul.edu> wrote:
try now
On Apr 5, 2:30 pm, Thadeus Burgess <thade...@thadeusb.com>
wrote:
Now I get this for reference field
Traceback (most recent call last):
File "/home/tburgess/Applications/web2py/gluon/
restricted.py", line
173, in restricted
exec ccode in environment
File "/home/tburgess/Applications/web2py/applications/pms/
views/default/index.html",
line 84, in <module>
{{=db.table[column].represent(d.B[column])}}
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2210,
in __getattr__
self.__allocate()
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2203,
in __allocate
self._record = self._table[int(self)]
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2384,
in __getitem__
return self._db(self.id == key).select().first()
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 3258, in select
return
self._db._adapter.select(self._query,*fields,**attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 512, in select
return self.parse(rows,self._colnames)
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 707, in parse
colset[fieldname] = rid = Reference(value)
TypeError: int() argument must be a string or a number, not
'NoneType'
-Thadeus
On Mon, Apr 5, 2010 at 2:20 PM, mdipierro
<mdipie...@cs.depaul.edu> wrote:
I fixed the former. I did not fix the latter. It is a known
problem
with the new dal and one of the few things that needs to be
ironed
out: it does not like select('fieldname') only
select(db.table['fieldname']). Not difficult to fix anyway.
On Apr 5, 2:13 pm, Thadeus Burgess <thade...@thadeusb.com>
wrote:
I get this traceback when attempting to access a reference
field.
rows = db().select(db.table.ALL)
for r in rows:
r.id
r.title
r.reference_field.name
r.reference_field.description
Traceback (most recent call last):
File "/home/tburgess/Applications/web2py/gluon/
restricted.py", line
173, in restricted
exec ccode in environment
File "/home/tburgess/Applications/web2py/applications/pms/
views/default/index.html",
line 84, in <module>
{{=db.field[column].represent(d.B[column])}}
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2210,
in __getattr__
self.__allocate()
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2203,
in __allocate
self._record = self._table[int(self)]
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 2384,
in __getitem__
return self._db(self.id == key).select()._first()
AttributeError: 'Rows' object has no attribute '_first'
I get this traceback from form = SQLFORM(db.mytable)
Traceback (most recent call last):
File "/home/tburgess/Applications/web2py/gluon/
restricted.py", line
173, in restricted
exec ccode in environment
File "/home/tburgess/Applications/web2py/applications/pms/
controllers/default.py",
line 278, in <module>
File "/home/tburgess/Applications/web2py/applications/pms/
models/plugin_compression.py",
line 28, in compress_response
d = d()
File "/home/tburgess/Applications/web2py/applications/pms/
controllers/default.py",
line 15, in index
return dict(hi='hi', form=SQLFORM(db.mytable))
File "/home/tburgess/Applications/web2py/gluon/
sqlhtml.py", line
688, in __init__
inp = self.widgets.multiple.widget(field, default)
File "/home/tburgess/Applications/web2py/gluon/
sqlhtml.py", line
211, in widget
return OptionsWidget.widget(field, value, **attributes)
File "/home/tburgess/Applications/web2py/gluon/
sqlhtml.py", line
187, in widget
options = requires[0].options()
File "/home/tburgess/Applications/web2py/gluon/
validators.py", line
2227, in _options
options = self.other.options()
File "/home/tburgess/Applications/web2py/gluon/
validators.py", line
385, in options
self.build_set()
File "/home/tburgess/Applications/web2py/gluon/
validators.py", line
369, in build_set
records = self.dbset.select(*self.fields, **dd)
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 3258, in select
return
self._db._adapter.select(self._query,*fields,**attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 501, in select
query = self.SELECT(query,*fields, **attributes)
File "/home/tburgess/Applications/web2py/gluon/sql.py",
line 432, in SELECT
tablenames.append(f._tablename)
AttributeError: 'str' object has no attribute '_tablename'
-Thadeus
--
You received this message because you are subscribed to the
Google Groups "web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com
.
For more options, visit this group athttp://groups.google.com/group/web2py?hl=en
.
--
You received this message because you are subscribed to the
Google Groups "web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com
.
For more options, visit this group athttp://groups.google.com/group/web2py?hl=en
.
--
You received this message because you are subscribed to the
Google Groups "web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com
.
For more options, visit this group athttp://groups.google.com/group/web2py?hl=en
.
--
You received this message because you are subscribed to the
Google Groups "web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
...
read more ยป
--
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en.