I believe that if you want to use the DAL's reference then you must
reference the foreign table's row via its id field (this hidden
field). If you want use a different field then you must construct a
join. Something like:
q = db(db.tasks.student_id==db.student.student_id) #this 'row
selection' creates a SQLquery object.
rows = q.select(db.tasks.ALL, db.student.first_name) # this column
selection performs the actual db collection/creation of the resultset
for row in rows:
print row.tasks.student_id, row.tasks.task, row.student.first_name
Note above that the first two lines are often combined into:
rows = db(db.tasks.student_id==db.student.student_id).select
(db.tasks.ALL, db.student.first_name)
---
Rb
PS. it's all in the Programmer's Guide pdf. (There's a new version
coming out shortly).
On Jul 27, 8:12 pm, Alastair Medford <[email protected]>
wrote:
> I've been looking into creating a table reference (or foreign key) in
> web2py and have only found db.Field('name', db.otherTable). Now as I
> understand it, this creates an integer field in the table that
> contains the "hidden" web2py integer id of the entry in the other
> table. Is this the case?
>
> If so, is there any way to reference on a different unique field? For
> the sake of example, consider this table definition:
>
> db.definetable('student',
> db.Field('student_id', 'integer'),
> db.Field('first_name', 'string'),
> db.Field('last_name', 'string))
>
> db.definetable('tasks',
> db.Field('student_id', db.student),
> db.Field('task', 'string'))
>
> Is there any way for student_id in the tasks table to contain the
> actual student_id, and not the web2py id? I haven't been able to find
> many details on the subject.
>
> Also sorry if I do not respond quickly, I'm traveling currently and
> never really know when I'll have wifi again. Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---