On Wednesday, September 21, 2016 at 3:30:49 AM UTC-4, Meinolf wrote:
> OMG, Is this normal?????
> i got chills telling me it had something to do with the *For Loop*,
> played around with the LBs and UBs and the following worked:
> * for i in range(-1, (len(getcourseids)-1)):*
First, if you want the subscripts of a list, just do range(len(thelist)).
Do not subtract 1 from the length of the list -- range already handles that
for you (it returns integers that are strictly less than the second
argument). Also, no need to start with 0, as that is the default. And don't
start with -1 -- when used as a subscript, that will simply retrieve the
*last* item in the list, not the first. Also, in Python 2, use xrange() in
for loops, which is more memory efficient (in Python 3, range has been
replaced by xrange).
> * c = db.item.id <http://db.item.id>==getcourseids[i].item_id*
> * s.append(db(c).select(db.item.course_title)[i])*
Here it is not clear why you are subscripting the result of the select with
[i]. Presumably each query returns a single matching row, which means you
want the subscript to always be  -- otherwise, you will get a list index
out of range error.
Anyway, you should not be using the above method at all, as it is very
inefficient (you are doing a separate database query for every single item
in getcourseids, when you could instead use a single query). Villas has the
right idea, but getcourseids.values() assumes getcourseids is a dictionary
-- presumably it is actually a Rows object. So, you can do:
s = db(db.item.id.belongs([c.item_id for c in
Note, the above is a Rows object. You can convert it to a list if you
really need a list, but most likely you can work with the Rows object (it
can be iterated and indexed just like a list).
Assuming getcourseids is a Rows object and the only reason it was created
was to get the item_id values to be used in this subsequent query, you can
instead skip the creation of getcourseids and just use a nested select
id_query = db([your query to retrieve course
s = db(db.item.id.belongs(id_query)).select(db.item.course_title)
- 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
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.