2012-11-20 103 views
1

我的Google App Engine程序出現問題。我一直盯着它幾個小時,而不是解決方案。 我看到另一個相關問題"BadValueError: Property category is required" on GAE,但即使從用戶和USD變量中刪除「required = True」條件,我也會收到相同的錯誤。BadValueError('屬性%s必須是浮點數'%self.name)BadValueError:屬性USD必須是浮點數

我的程序做一個簡單的美元貨幣轉換爲SR貨幣。 不幸的是,我不斷收到錯誤: BadValueError( '財產%s必須是一個浮動' %self.name) BadValueError:房產USD必須是浮動

代碼從我main.py

import webapp2 
from google.appengine.ext import db 
from google.appengine.ext.webapp import template 

class Convert(db.Model): 
    user = db.StringProperty(required=True) 
    USD = db.FloatProperty(required=True) 
    SR = db.FloatProperty() 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     conversion=db.GqlQuery('SELECT * FROM Convert') 
     values={'conversion':conversion} 
     self.response.out.write(template.render('main.html',values)) 
    def post(self): 
     prog= Convert(user=(self.request.get('userName')),USD=((float)self.request.get('currency'))),SR=((float)(self.request.get('currency')*3.75))) 
     prog.put() 
     self.redirect('/') 

app = webapp2.WSGIApplication([('/', MainHandler)], debug=True) 
從我的main.html中

代碼

<tr><td>{% for a in conversion%} 
     <div align="right" lang="ar"><font size="+1" color="#000000"><strong><font color="#009999">{{a.user}}أدخل:</font> 
     {{a.USD}}<font color="#990000">م</font> = {{a.SR}}{% endfor %} 
    </td></tr> 

    <tr><td> 
     <form action="" method="post" accept-charset="utf-8"> 
      <p align="right" dir="rtl"><strong><font color="#003366">أدخل الدولار الأمريكي:</font></strong><input type="text" name="currency" value="" id="currency"></input></p> 
      <p align="right" dir="rtl"><strong><font color="#003366">الرجـاء إدخــال اسمـك:</font></strong><input type="text" name="userName" value="" id="userName"></input></p> 
      <p align="right"><input type="submit" value="تحويل العملة"></input></p> 
     </form> 
    </td></tr> 
+0

這看起來應該是一個語法錯誤,但你可以嘗試'float(self.request.get('currency'))''而不是'((float)self.request.get('currency')) )'? –

+0

@丹我試過了,還是一樣的錯誤。 – user1799092

回答

0

真正奇怪的部分是,我改名USD和SR變量以小寫字母表示,並且工作正常。我不知道爲什麼它堅持資本美元「物業美元一定是浮動的」,但是當我將它們改爲低位美元和美元時,它運行得很順利。

0

我無法重現你的錯誤與本地服務器,而不是我得到:

SyntaxError: invalid syntax 
Traceback (most recent call last): 
    ...snip... 
    File "/Users/user/helloworld/main.py", line 16 
    prog= Convert(user=(self.request.get('userName')),USD=((float)self.request.get('currency'))),SR=((float)(self.request.get('currency')*3.75))) 

我做出的評論的建議解決雙方的語法問題,你原來的問題(這要是我刪除(float)聲明我只能得到):

def post(self): 
    prog= Convert(user=self.request.get('userName'),USD=float(self.request.get('currency')),SR=float(self.request.get('currency'))*3.75) 
    prog.put() 
    self.redirect('/') 
相關問題