Ok, YOU GUYS are awesome .......
Your replies gave me the insight I needed !!!!!!!!!
Here is the explanation:
A: in the database, the passes were for the "lookup" in the SQLFORM.factory
SO there was the confusion there ...
B: It seems there is a 2 passes thru the controller (which this group gave
me the hint at it)
The failure was at the first pass when nothing was set ...
putting this in:
if session.company :
DbRows =
db(db.company.company_number==Company_ID).select(db.company.company_name).first()
session.company_data = DbRows
session.company_name = DbRows.company_name
Allowed me to PASS unharmed and get what I needed.
THANKS Again, group ....
.
*Ben Duncan*
DBA / Chief Software Architect
Mississippi State Supreme Court
Electronic Filing Division
On Thu, Dec 6, 2018 at 2:21 PM Ben Duncan <[email protected]> wrote:
> The request.vars get set from the SQL form in the controller....
> Removed all the COMMENTS, and in the controller put a print and changed
> the code:
>
> DbRows =
> db(db.company.company_number==Company_ID).select(db.company.company_name).first()
> print DbRows['company_name']
> session.company_data = DbRows
> return dict(form=form,DbRows=DbRows)
>
> And still getting a failure now on the print line ...
>
> Ticket ID
>
> 10.13.69.144.2018-12-06.13-53-08.f35db77f-72f8-4749-82e9-90eda4c32141
> <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
> 101, 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 87,
> in company_login
> print DbRows['company_name']
> TypeError: 'NoneType' object has no attribute '__getitem__'
>
>
>
> It's very strange how :
> session.company_data = DbRows
> Gets passed.
>
> However, looking at the postgres logs:
> 2018-12-06 14:18:31.482 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: SELECT "company"."company_name", "company"."company_number" FROM
> "company" WHERE ("company"."company_number" IS NOT NULL) ORDER BY
> "company"."company_name", "company"."company_number";
> < 2018-12-06 14:18:31.488 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: SELECT "company"."company_name" FROM "company" WHERE
> ("company"."company_number" IS NULL);
> < 2018-12-06 14:18:31.505 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: COMMIT
> < 2018-12-06 14:18:35.282 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: BEGIN
> < 2018-12-06 14:18:35.282 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: SELECT 1;
> < 2018-12-06 14:18:35.475 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: SELECT "company"."company_name", "company"."company_number" FROM
> "company" WHERE ("company"."company_number" IS NOT NULL) ORDER BY
> "company"."company_name", "company"."company_number";
> < 2018-12-06 14:18:35.485 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: SELECT "company"."company_name" FROM "company" WHERE
> ("company"."company_number" = 13);
> < 2018-12-06 14:18:35.505 CST SessId: 5c0981bd.6e70 TrxId: 0>LOG:
> statement: COMMIT
>
> It seems to be making 2 passes thru the DB
>
> Allows the the session variable to be set
> *Ben Duncan*
> DBA / Chief Software Architect
> Mississippi State Supreme Court
> Electronic Filing Division
>
>
> On Thu, Dec 6, 2018 at 1:30 PM Val K <[email protected]> wrote:
>
>> Maybe I don't understand something, but I think that when the controller
>> is requested for the first time there is no any request.vars and
>> request.vars['Company'] too. Just in case: form.process() doesn't interrupt
>> controller execution
>>
>> --
>> 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 [email protected].
>> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.