0

私はこの基本モデルを持っています:

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()

このユーザー モデルに日付プロパティを追加する方法はありますか?

4

2 に答える 2

0

startdate代入しようとしている値のemployee_start_dateタイプdateは ではなくdatetimeです。コードを機能させるには、次の 2 つのオプションがあります。

1)employee_start_dateに変更datetime:

employee_start_date = ndb.DateTimeProperty()

2)startdate変数を asdateおよび notにしdatetimeます。

于 2012-11-30T07:28:38.950 に答える
0

独自の User クラスを使用するには、必ず設定してください

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

webapp2.WSGIApplication 構成引数の場合

于 2012-11-30T19:44:32.577 に答える