私はModelクラスを初期化する方法を見つけることができません...のpython3フラスコモデルクラスのInit
# Define mongoengine documents
class User(db.Document, UserMixin):
name = db.StringField(max_length=75,primary_key=True)
email = db.EmailField(max_length=255,unique=True,required=True)
password = db.StringField()
created_on = db.DateTimeField(
default=datetime.datetime.now, required=True
)
isActive = db.BooleanField(default=True)
isAuthenticated = db.BooleanField(default=False)
isAdmin = db.BooleanField(default=False, required=False)
meta = {'collection': 'users'}
def __init__(self,name,email,password,created_on,isActive=True,isAuthenticated=False,isAdmin=False):
self.name=name
self.email=email
self.password = bcrypt.generate_password_hash(
password, app.config.get('BCRYPT_LOG_ROUNDS')
).decode('utf-8')
self.created_on==datetime.datetime.now()
self.isActive = isActive
self.isAuthenticated = isAuthenticated
self.isAdmin = isAdmin
私は次のエラーを取得する:
TypeError: __init__() missing 4 required positional arguments: 'name', 'email', 'password', and 'created_on'
私はわからないんだけど私が見逃しているのは、構文が正しいようです。
私はのinit機能
これが問題ののpython3 Python2対一種であるを削除すると、モデルが(無塩パスワードで)動作しますか?
完全トレースバック:[https://gist.github.com/642ad5c9d86a3bb8da70757636424209]
エラーメッセージだけでなく、トレースバック全体を投稿してください。 [mcve]を参照してください。エラーは非常に簡単です:あなたはこれらの4つの引数を渡さずにインスタンスを作成しています。 – davidism
これらをオプションにしたい場合は、isAdminなどのようにNoneにデフォルト設定する必要があります –
これをこれらのパラメータに追加することもできます(name = ""、email = ""、password = ""、created_on =なし) –