簡體   English   中英

我正在嘗試使用 Python 和 Flask 將新用戶插入到我的 sqlAlchemy 中,但一直出現錯誤

[英]I am trying to insert new user to my sqlAlchemy by using Python and Flask but keep getting an error

這是我的數據庫模型設置

class User(db.Model, UserMixin):
    __tablename__ = 'users'
    username = db.Column(db.String(100), nullable=False)
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    email = db.Column(db.String(100),  unique=True, nullable=False)
    password_hash = db.Column(db.String(128), nullable=False)
    roles = db.relationship('Role', secondary='users_roles')
    backref = db.backref('users', lazy='dynamic')
# Here func that hashing password set it by user

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)


class Role(db.Model, RoleMixin):
    __tablename__ = 'roles'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(60), unique=True)

這是我嘗試插入新用戶的方式,

new_user = User(username="user1", email="user1@gmail.com",
                password_hash="hashed_password", roles="Admin")
db.session.add(new_user)
db.session.commit()

但我不斷收到此錯誤

", line 1385, in <listcomp>
    ((c is not None) and instance_state(c) or None, c)
AttributeError: 'str' object has no attribute '_sa_instance_state'

有人能幫助我嗎??

我認為問題在於您初始化用戶的角色屬性的方式:

new_user = User(username="user1", email="user1@gmail.com", password_hash="hashed_password", roles="Admin")

因為角色是指一個對象 ry 將 'roles="Admin"' 更改為角色對象

另外 c 通常表示一列,因此它嘗試獲取列(角色對象)的和屬性,並將角色作為 str

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM