2013-05-12 118 views
0

我想實現在我的本地驗證碼:web2py的語法錯誤非關鍵字精氨酸後關鍵字精氨酸

def form_a(): 
    form = SQLFORM(db.registration, deletable=True, request.args(0), upload=URL(r=request, f='download')) 
    if form.accepts(request.vars, session): 
     if not form.record: 
      response.flash = "Your input data has been submitted." 
     else: 
      if form.vars.delete_this_record: 
       session.flash = "User record successfully deleted." 
      else: 
       session.flash = "User record successfully updated." 
      redirect(URL(r=request, f='form_a’)) 
    records = db().select(db.registration.ALL) 
    return dict(form=form, records=records) 

但我在此得到非關鍵字ARG後關鍵字ARG錯誤行:

form = SQLFORM(db.registration, deletable=True, request.args(0), upload=URL(r=request, f='download')) 

而一個EOL,而在這條線掃描文字錯誤

redirect(URL(r=request, f='form_a’)) 

我正在使用Python 3和Web2Py 2.4.6,謝謝。

回答

1

所有的位置參數必須在關鍵字參數之前出現,因此這裏request.args(0)正在導致錯誤,因爲deletable=True之前的關鍵字參數已經通過。

形式= SQLFORM(db.registration,可刪除=真,request.args中(0), 上傳= URL(R =請求中,f = '下載'))

docs

在函數調用中,關鍵字參數必須遵循位置 參數。所有傳遞的關鍵字參數都必須與函數接受的參數 之一匹配,並且它們的順序並不重要。

而在redirect(URL(r=request, f='form_a’))中,您正在使用不同類型的開盤和閉盤報價。

它必須是f='form_a'f="form_a"

2

你有一個非關鍵字參數:

form = SQLFORM(db.registration, deletable=True, request.args(0), upload=URL(r=request, f='download')) 
               ^^^^^^^^^^^^^^^ 

關鍵字參數之後:

form = SQLFORM(db.registration, deletable=True, request.args(0), upload=URL(r=request, f='download')) 
           ^^^^^^^^^^^^^^ 

你要麼必須做出deletable非關鍵字參數或進行request.args(0)關鍵字參數。

至於第二個錯誤,這句話在這裏並不是一個真正的收盤報價:

redirect(URL(r=request, f='form_a’)) 
           ^

注意它是如何的捲曲。用一個普通的單引號替換它。

0

在:

form = SQLFORM(db.registration, deletable=True, request.args(0), upload=URL(r=request, f='download')), 

deletable=True, request.args(0)這是一個關鍵字參數後非關鍵字參數。哪個是無效的語法..

並在redirect(URL(r=request, f='form_a’))

redirect(URL(r=request, f='form_a’)) 
           ^This is not what you want.. 
redirect(URL(r=request, f='form_a')) 
           ^This IS what you want.. 
相關問題