Dear Community,

I just started with web2py and ran into some difficulties:

I would like to display a custom table with my data. For the value of a 
specific field in each row I need the corresponding information from 
another table.

This is what I have so far:

def get_extended_info_for_case(case_id):
    # DB-Query here to get the fields&values I need    
    return extended_info

def manage():
    ext_info = lambda row: get_extended_info_for_case(row.cases.id)
    db.cases.extended_info = Field.Virtual(ext_info)
    rows = db(db.cases).select()
    headers = ["ID", "A", "B", "C", "Extended Info"]
    fields = ["id", "a", "b", "c", "extended_info"]
    table = TABLE(THEAD(TR(*[B(header) for header in headers])),
                  TBODY(*[TR(*[TD(row[field]) for field in fields])
                        for row in rows]))

This works when the helper-function get_extended_info returns just a plain 
string. However, if I have it return a list of tuples that I can then use 
to dynamically create links within the virtualfield - one for each tuple - 
I'm lost.

For example: 
extended_info = [(1,"A1"), (223,"whatever")]

resulting entry in the corresponding virtualfield should be a concatenation 
of several links:
A(A1, _href=URL("edit", args=1)), A(whatever, _href=URL("edit", args=223))

How can I accomplish this? Can I integrate the query to the second 
databasetable into the first one? Or do I need nested lambdas? I have to 
admit that I don't fully understand the way lambdas and the nested 
table-construction work. Is there a way to display this in a more 
human-readable form? Or am I better of contructing my table in the view 
instead?

Thanks a lot.

Best regards,
Dan

-- 

--- 
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.


Reply via email to