2015-01-16 71 views
0

我試圖做一個計算後通過一個變量從函數一函數二但我得到一個錯誤。我嘗試下面的解釋:添加一個整數到一個函數中的傳遞變量web2py

def one(): 
    a = 5 
    return dict(a = a) 

def two(): 
    b = request.vars['value'] 
    c = 3 
    d = b - c 
    return dict(b=b, c=c, d=d) 

在視圖默認/ one.html我有以下幾點:

{{=A("link",_href=URL("two", vars=dict(value=a)))}} 

然後,在視圖默認/ two.html我有以下:

{{=d}} 

在這一點上,我得到這個錯誤:類型錯誤:不支持的操作類型爲 - :「海峽」和「廉政」

我希望得到這方面的幫助。謝謝。

回答

0

在request.vars快譯通,它的鍵都是字符串,所以你不能只用「 - 」,儘量爲int()的值,然後計算:

def two(): 
    b = request.vars['value'] 
    c = 3 
    num_b = 0 
    changed_value = False # to see if value changed 
    try: 
     num_b = int(b) 
     changed_value = True 
    except ValueError, error: 
     print error 
    if changed_value == True: 
     d = num_b - c 
    else: # not changed add your own code to the logic 
     # add your line 
     pass 
    return dict(b=b, c=c, d=d) 
+0

非常感謝您的幫助。沒有更多的錯誤消息。它幾乎可以工作,但似乎num_b = 0將5變爲0.所以計算的結果是-3而不是2。 –

相關問題