BadValueError thrown when entering Integer in html

2019-02-24 13:54发布

Am working with Python to create a Google App Engine application.To test my app, i am using html forms to enter data. In my form i have a line:

<tr><td>Age</td><td><input type="number" size="10" name="age"/></td></tr>

and in my model class, a property defined like this:

class Person(ndb.Model):
...
age = ndb.IntegerProperty()

when i test my app locally it displays the form but on entering a value for age, i get a BadValueError: Expected integer, got u '23' message.Posting image because i do not know how to copy command prompt text.I hope it's clear enough.

enter image description here

Edit: This is how the data is been passed from html form.

  # Data taken from the registration form (above) is used to 
  # create a new member.
 class PersonHandler(webapp2.RequestHandler):

 def post(self):
    # need to check this member-name does not exist
    name = self.request.get('name')
    callback = self.request.get('callback')
    member = Member.get_by_id(name)
    if member:           # This member name already exists.
        self.error(409)  # This is the HTTP status code for 'unable to process due to conflict'
    else:
        ...
        a = self.request.get("age")

        member = Member(age=a,...)
        member.put()
        if callback:
            self.response.write(callback + '(' + member.toJSON + ')')
        else:
            self.response.write(member.toJSON())

Can someone tell me what am doing wrong?

1条回答
SAY GOODBYE
2楼-- · 2019-02-24 14:28

You simply need to convert the retrieved value to an integer:

    ...
    else:
        ...
        a = int(self.request.get("age"))
查看更多
登录 后发表回答