Hi,

I followed this example with your answer.

https://groups.google.com/forum/#!topic/web2py/FwWJGn6LGH8

I add (your "bad hack"):

        submenus = db.menus.with_alias('menusoptions')
        query = (db.menus.parent_id == 0)
        count = submenus.id.count()
        
        # bad hack
        count.tablename = 'menus' #I removed the underscore _tablename
        count.readable = True
        count.represent = False
        count.formatter = lambda value:value
        # end bad hack    

        table = SQLFORM.grid(query,
                             fields = [
                                       db.menus.title,
                                       count,
                                       ],
                             left=submenus.on(db.menus.id == 
submenus.parent_id),
                             groupby=db.menus.title,
                            )



Now, the problem is that 'count' field is not show on grid.

Very Thanks

On Wednesday, September 11, 2013 3:45:41 PM UTC+2, Massimo Di Pierro wrote:
>
> You cannot put expressions in grid in place of fields.
>
> On Monday, 9 September 2013 18:44:18 UTC-5, dam...@gmail.com wrote:
>>
>> Hi,
>>
>> I'm using web2py 2.6.0. test.
>>
>> on sqlhtml.py line 1916:
>>  
>>     columns = [f for f in fields if f.tablename in tablenames]
>>
>>
>> when add field count, count not attribute 'tablename' and:
>>
>> AttributeError: 'Expression' object has no attribute 'tablename'
>>
>> My code:
>>         submenus = db.menus.with_alias('menusoptions')
>>         query = (db.menus.parent_id == 0)
>>         count = submenus.id.count()
>>         
>>         table = SQLFORM.grid(query,
>>                              fields = [
>>                                        db.menus.title,
>>                                        count,
>>                                        ],
>>                              left=submenus.on(db.menus.id == 
>> submenus.parent_id),
>>                              groupby=db.menus.title,
>>                             )
>> ---
>> I think that de problem is field count, this, not have attribute tablename
>>
>> fiel count is: Expression: COUNT(menusoptions.id)
>>
>>
>> when:
>>         submenus = db.menus.with_alias('menusoptions')
>>         query = (db.menus.parent_id == 0)         
>>         count = submenus.id.count()
>>         menus = db(query).select(db.menus.id, 
>> count,left=submenus.on(db.menus.id == submenus.parent_id), 
>> groupby=db.menus.id )
>> work fine.
>>
>>
>> Thanks.
>>
>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to