使用date属性创建Webapp2 auth用户

时间:2012-11-30 02:06:39

标签: google-app-engine authentication date webapp2

我有这个基本模型:

class User(auth_models.User):
username = ndb.StringProperty()
email = ndb.StringProperty()
first_name = ndb.StringProperty()
last_name = ndb.StringProperty()
employee_start_date = ndb.DateProperty()

但是,当我创建用户时:

success, obj = self.auth.store.user_model.create_user(
    "auth:"+ username,
    unique_properties = ['email'],
    email = emailaddress,
    first_name = firstname,
    last_name = lastname,
    employee_start_date = startdate)

我收到以下错误:

NotImplementedError: Property employee_start_date does not support <type 'datetime.date'> types.

(注意:如果我不包含employee_start_date,则创建用户成功)

现在,从我通过搜索互联网可以看出,这是因为user_model是一个expando模型,并且由于某种原因它不支持日期字段。但是,我肯定不知道。

我也尝试在创建用户后立即添加它,但我得到了相同的错误消息:

obj.employee_start_date = startdate
obj.put()

有没有办法向这个用户模型添加日期属性?

2 个答案:

答案 0 :(得分:0)

您尝试分配给startdate的{​​{1}}值不是employee_start_date类型,而是date。为了使您的代码有效,您有两种选择:

1)将datetime更改为employee_start_date

datetime

2)将employee_start_date = ndb.DateTimeProperty() 变量设为startdate而不是date

答案 1 :(得分:0)

要使用您自己的User类,请务必设置

config = {'webapp2_extras.auth':{
    'user_model': 'your_auth.User'
}}

用于webapp2.WSGIApplication配置参数