2013-06-02 93 views
0

'row'變量返回單個行,但它顯示select語句返回'rows'對象。我想從'row'變量中提取字段a和字段d。web2py:從行對象中獲取字段

我試着只做row.a或row.d,但是這會返回一個錯誤。

def d_comp():  

    c_id = request.args(0) 
    evo_id = request.args(1) 

    row = db((db.tbl_stat.c_id == c_id) & (db.tbl_stat.evo_type == evo_id)).select() 

    c = db(db.tbl_c.id == c_id).select(db.tbl_c.ALL) 

    a = 1 

    d = 1 

    p = 1 

    return dict(c=c,a=a,d=d,p=p) 

回答

0

我做解決問題的HTML文件中的以下內容:

{{for val in row:}} 
    {{=val.a}} 
    {{=val.d}] 
{{pass}} 
0

.select()方法總是返回DAL行對象,即使它不包含任何記錄或只有一個記錄。行對象像列表的行爲,這樣就可以通過下標提取單個記錄(其是DAL行對象):

rows = db((db.tbl_stat.c_id == c_id) & (db.tbl_stat.evo_type == evo_id)).select() 
row = rows[0] # extracts the first record in "rows" 

用於特異性提取第一行的另一種方便的方法是:

row = rows.first() 

的如果Rows對象中沒有記錄而不是引發異常,則它簡單地返回None

0

簡短的回答是你。選擇()後放。首先()

row = db((db.tbl_stat.c_id == c_id) & (db.tbl_stat.evo_type == evo_id)).select().first()