繁体   English   中英

Flask 安全性 - 无法为映射表“用户”组装任何主键列

[英]Flask security - could not assemble any primary key columns for mapped table 'user'

问题

我正在构建一个 Flask 应用程序并尝试实现烧瓶安全性。

我目前收到错误:

sqlalchemy.exc.ArgumentError: Mapper mapped class User->user could not assemble any primary key columns for mapped table 'user'

如何解决此错误,我对securityuser_datastore对象的设置是否正确?

项目结构

/app
  models.py
  __init.py__
run.py

run.py 文件简单调用从_ _ init _ _.py文件创建应用程序:

from flask import Flask
from flask_security import Security
from app.models import db, user_datastore


def create_app():

    app = Flask(__name__)
    app.config.from_object('config')
    security = Security(app, user_datastore)

    # Initialise extensions
    db.init_app(app)

    with app.app_context():

        # Import parts of the application

        # Register Blueprints

        # Create sql tables for data models
        db.create_all()

    return app

models.py文件是:


from flask_sqlalchemy import SQLAlchemy
from flask_security import SQLAlchemyUserDatastore

db = SQLAlchemy()


roles_users = db.Table('roles_users',
                       db.Column('user_id', db.Integer, db.ForeignKey('user_id')),
                       db.Column('role_id', db.Integer, db.ForeignKey('role_id')))


class User(db.Model):
    id = db.Column(db.Integer, prinary_key=True)
    email = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean)
    confirmed_at = db.Column(db.DateTime)
    roles = db.relationship(
        'Role',
        secondary=roles_users,
        backref=db.backref('users', lazy='dynamic')
    )


class Role(db.Model):
    id = db.Column(db.Integer, prinary_key=True)
    name = db.Column(db.String(40))


user_datastore = SQLAlchemyUserDatastore(db, User, Role)

可能是剪切和粘贴错误 - 但您拼错了“primary_key”

您还使用了哪个 Flask Security - 如果 Flask-Security-Too 您缺少一些必需的列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM