属性%s是必需的

时间:2012-08-06 16:45:14

标签: python google-app-engine

我使用GAE和python 2.7编写了一个简单的程序,但是在将数据存储到db时遇到了一些问题。我的代码如下:

class MemberInfo(db.Model):
    firstName = db.StringProperty(required=True)

class RegisterPageButtonDown(webapp2.RequestHandler):
    def post(self):
        memberInfo = MemberInfo()       
        memberInfo.firstName = self.request.get('firstName')
        memberInfo.put()

memberInfo = MemberInfo()”中出现错误,表示“属性firstName是必需的”。我确信我把数据放在html表单中,方法也是post。

我一直坚持这个问题整晚,谢谢你的回复。

2 个答案:

答案 0 :(得分:1)

您已将firstName属性设置为required,因此在实例化对象时,必须为该属性提供值,例如:

memberInfo = MemberInfo(firstName = self.request.get('firstName'))

或者,您可以在模型中不要求firstName

答案 1 :(得分:1)

在您从请求中获取值之前,错误来自函数的第一行。这是因为在实例化对象时需要传入该值。

firstName = self.request.get('firstName')
memberInfo = MemberInfo(firstName=firstName)

(另请注意,Python的常规命名约定意味着变量和属性为lower_case_with_underscore,而不是camelCase。)