Python TypeError:为argumen获取多个值

2024-04-19 03:18:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我要实现的目标

我正在尝试在我的项目中建立一个Flask RESTful web服务。 我将所有数据存储在PostgreSQL数据库中。在我的项目中,我使用SQLAlchemy为我的表创建数据模型。在

我创建了一些抽象模型来向所有模型添加特定属性。 请参阅下面的代码。在

问题

我有一个表示系统用户的模型(UserModel)。当我想创建一个新用户时,我得到以下错误:

TypeError: __init__() got multiple values for argument 'user_type'

我的工作:

user = UserModel("user@test.com", "test", "user", UserType.admin)

我不明白为什么在我传递4个参数时,参数“user_type”将获得多个值。 init函数有5个,包括self属性。在

我怀疑抽象类,但我不确定。当我删除user_type参数和属性时,会出现以下错误:

TypeError: __init__() takes 4 positional arguments but 5 were given


用户模型.py

^{pr2}$

基本模型.py

from datetime import datetime, date, time
from sqlalchemy.dialects import postgresql
from sqlalchemy.schema import ForeignKey
from sqlalchemy.ext.declarative import declared_attr, declarative_base

from core.database.dbmanager import DBManager

db = DBManager.get_db_instance()

class Base(object):
    """A model which functions as a basic model for other models.

    Adds the id property to other models.
    """

    id = db.Column(db.Integer, primary_key=True, nullable=False)


    def __init__(self):
        super(Base, self).__init__()


Base = declarative_base(cls=Base)

审核模型.py

from core.models.base.basemodel import db, postgresql, declared_attr, ForeignKey, datetime, Base

class Auditable(Base):
    """A model which functions as an auditable model for other models.

    Adds the created_by_id, created_by and creation_time properties to other models.
    """
    __abstract__ = True

    @declared_attr
    def created_by_id(cls):
        return db.Column(db.Integer, ForeignKey('Users.id'), nullable=False)

    @declared_attr
    def created_by(cls):
        return db.relationship('UserModel', lazy='select', foreign_keys=[cls.created_by_id])

    @declared_attr
    def creation_time(cls):
        return db.Column(db.DateTime, nullable=False, default=datetime.now())


    def __init__(self):
        super(Auditable, self).__init__()

审核的deletemodel.py

from core.models.base.auditedmodel import db, postgresql, declared_attr, ForeignKey, Auditable

class AuditedDeletable(Auditable):
    """A model which functions as an auditeddeletable model for other models.

    Adds the is_deleted properties to other models.
    """
    __abstract__ = True

    @declared_attr
    def is_deleted(cls):
        return db.Column(db.Boolean, nullable=False, default=False)


    def __init__(self):
        super(AuditedDeletable, self).__init__()

Tags: from模型importselfiddbbasemodel