BadValueError('Property%s必须是float'%self.name)BadValueError:Property USD必须是float

时间:2012-11-20 21:21:35

标签: google-app-engine python-2.7

我的Google App Engine程序出现问题。我现在已经盯着它看了几个小时,而不是解决方案。 我已经看到了另一个相关问题"BadValueError: Property category is required" on GAE,但即使我从用户和USD变量中删除了“required = True”条件,我也收到同样的错误。

我的计划将美元货币简单转换为SR货币。 不幸的是,我一直收到错误: BadValueError('Property%s必须是float'%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>

2 个答案:

答案 0 :(得分: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('/')

答案 1 :(得分:0)

真正奇怪的部分是,我将美元和SR变量重命名为小写,并且有效。我不知道为什么它坚持资本美元“房产美元必须是一个浮动”,但当我把它们改为lowcas usd和sr时,它运行顺利。