Well I was thinking that, BUT:  I'm ALMOST convinced there is a bug in the
latest web2py:

CODE
------------------------------------------------------------------------------------------------------------------------------
Snippet of controllers/default.py

session.company = request.vars['Company']
    Company_ID = "This is a %s of type %s " % (session.company,
type(session.company))
    Company_ID = session.company

    DbRows =
db(db.company.company_number==Company_ID).select(db.company.company_name).first()
    # Co_Name = DbRows['company_name']

    session.company_data = DbRows

>From view/default/company_login.html:
{{extend 'layout.html'}}
<!-- {{session.company = request.vars['Company']}} -->

<INPUT type="button" value="HOME"
onclick="location.href='{{=URL('index')}}'"/>

<a href="{{=URL('index')}}">HOME</a>

<h4>Input form</h4>
{{=form}}
<h4 style="margin:0;">Submitted variables</h4>
{{=BEAUTIFY(request.vars)}}
{{=(request.vars)}}

<h4 style="margin:0;">Company vars: {{=(request.vars['Company'])}}</h4>
<h4 style="margin:0;">Company session: {{=(session.company)}}</h4>
<h4 style="margin:0;">session data: {{=(session.company_data)}}</h4>

Will Display The following:
(top of form omitted ...)
..... Submitted variables
Company :
5
password :
makeit1
username :
b...@linux4ms.net
<Storage {'username': 'b...@linux4ms.net', 'Company': '5', 'password':
'makeit1', '_formkey': '65ee8396-aac0-4b5c-a255-00be7e7b01ca', '_formname':
'no_table/create'}> Company vars: 5 Company session: 5 session data: <Row
{'company_name': 'Number 5 Company'}>
___________________________________________________________________________________________________________________________________

However, any type of referencing or attempt to do anything with either
session.company_date or DbRows
always gives a "Nonetype" error of various subtypes (such as __getitem__)

Uncommenting the controller code  of  "# Co_Name = DbRows['company_name']"
gives the error:

Ticket ID

10.13.69.144.2018-12-06.12-17-59.81fd7ae1-6523-47ad-94c7-7b1b480179bd
<type 'exceptions.TypeError'> 'NoneType' object has no attribute
'__getitem__' Version
web2py™ Version 2.17.2-stable+timestamp.2018.10.06.18.54.02
Python Python 2.7.13: /usr/bin/python (prefix: /opt/rh/python27/root/usr)
Traceback

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Traceback (most recent call last):
  File "/data/web2py/web2py/gluon/restricted.py", line 219, in restricted
    exec(ccode, environment)
  File "/data/web2py/web2py/applications/Mec/controllers/default.py"
<https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>,
line 98, in <module>
  File "/data/web2py/web2py/gluon/globals.py", line 421, in <lambda>
    self._caller = lambda f: f()
  File "/data/web2py/web2py/applications/Mec/controllers/default.py"
<https://10.13.70.47/admin/default/edit/Mec/controllers/default.py>,
line 84, in company_login
    Co_Name = DbRows['company_name']
TypeError: 'NoneType' object has no attribute '__getitem__'


As one can see , the Row item exists, it just seems there is no way to get
to it ...

Any other ideas ?


*Ben Duncan*
DBA / Chief Software Architect
Mississippi State Supreme Court
Electronic Filing Division


On Thu, Dec 6, 2018 at 9:09 AM Leonel Câmara <leonelcam...@gmail.com> wrote:

> What's happening here is that DbRows can become None in this line
>
>    DbRows =
> db(db.company.company_number==Company_ID).select(db.company.company_name).first()
>
> So when you do DbRows['company_name'] you can get that error.
>
> Basically you need to check if DbRows is None and raise HTTP(404)
>
> --
> 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/d/optout.
>

-- 
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/d/optout.

Reply via email to