Python Web2py查询未返回任何结果

Python Web2py查询未返回任何结果,python,sql,web2py,Python,Sql,Web2py,我在Web2py中有两个表 auth_user(标准表格) 客户(我定义了此表) 使用表单为客户创建条目时,将使用当前登录的用户(创建条目的用户)、id(来自auth\u user表)在company\u id字段的customer表中放置一个值。这是通过auth.user\u id完成的 现在,我尝试使用当前登录用户的auth.user\u id查询customer表,以调出当前登录用户创建的所有条目 我正在这样做 def viewcustomers(): rows = db.c

我在Web2py中有两个表

  • auth_user
    (标准表格)
  • 客户
    (我定义了此表)
使用表单为客户创建条目时,将使用当前登录的用户(创建条目的用户)、
id
(来自
auth\u user
表)在
company\u id
字段的
customer
表中放置一个值。这是通过
auth.user\u id
完成的

现在,我尝试使用当前登录用户的
auth.user\u id
查询
customer
表,以调出当前登录用户创建的所有条目

我正在这样做

def viewcustomers():

    rows = db.customer(db.customer.company_id == auth.user_id)
    print rows
在我看来,我有

{{=viewcustomers}}
我得到的唯一结果是“没有”


有人知道发生了什么吗?

为什么不让控制器的viewcustomers()函数返回一个以“viewcustomers”为键的字典

def viewcustomers():

  rows = db.customer(db.customer.company_id == auth.user_id).select()
  return dict(viewcustomers = rows) # or whatever instead of 'rows'
另外,如果您正在基于当前客户执行db查询,那么应该是session.auth.user.id而不是auth.user\u id吗


编辑:在下面的对话之后添加了“.select()”。

不要使用
打印来生成HTML输出。
print
命令将直接打印到控制台。为了执行视图,您的函数必须返回字典(实际上,您的函数不返回任何内容,这就是浏览器显示“无”的原因)

另外,
db.mytable(query)
语法只返回第一条匹配记录。如果需要所有记录,则必须使用
db(query).select()
语法

因此,您的函数应该如下所示:

def viewcustomers():
    rows = db(db.customer.company_id == auth.user_id).select()
    return dict(viewcustomers=rows)

注意,如果您在视图中插入一个
对象,默认情况下它将通过
SQLTABLE
显示。

通过添加return dict(viewcusters=Rows)行,它似乎正在工作。明亮的然而,当表中有更多结果时,它只返回一个结果@Boa,你知道如何让它显示多个结果吗?@user207336-尝试将上面的“rows=…”行替换为:“rows=db.customer(db.customer.company_id==auth.user_id.select()”。注意,
auth.user_id
session.auth.user.id
(虽然前者只会返回
None
,以防没有
session.auth.user.id
,而不是引发异常)。@Anthony-谢谢-太棒了。如果我早点知道的话,我会节省很多打字、复制和粘贴的时间!