我有这个基本模型:
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()
有没有办法向这个用户模型添加日期属性?
答案 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配置参数