2012-11-30 22 views
0

我有這樣的基本模式:創建webapp2的權威性與date屬性用戶

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) 

我收到以下錯誤:

​​

(注意:如果我不包含employee_start_date,創建用戶會成功)

現在,從我可以告訴搜索互聯網,這是因爲user_model是一個expando模型,並且由於某種原因它不支持日期字段。但是,我確實不知道。

我也試過在創建用戶後,立即加入吧,但我得到了同樣的錯誤消息是:

obj.employee_start_date = startdate 
obj.put() 

有沒有辦法爲日期屬性添加到該用戶模式?

回答

0

startdate值,你試圖給employee_start_date的類型是date,但datetime的不是。爲了使您的代碼工作,你有兩個選擇:

1)更改employee_start_datedatetime

employee_start_date = ndb.DateTimeProperty() 

2)請startdate變量date而不是datetime

0

使用自己的用戶類,一定要設置

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

爲webapp2.WSGIApplication配置參數