当我尝试在数据库中保存日志时,我收到此错误@Context
。
TypeError: __init__() takes exactly 1 argument (5 given)
我知道我可以使用这样的东西:
logs_transactions = Logs_transactions('test', 'test', 910000000, current_user.id)
db.session.add(logs_transactions)
db.session.commit()
class Logs_transactions(db.Model):
__tablename__ = 'logs_transactions'
id = db.Column(db.Integer, primary_key=True)
type = db.Column(db.String(100))
reference = db.Column(db.String(500))
phone_number = db.Column(db.Integer)
user_id = db.Column(db.Integer, db.ForeignKey('users_user.id'))
def __init__(self, **kwargs):
super(User, self).__init__(**kwargs)
但如果我有很多参数,这种方式很烦人。所以我认为上面的构造函数是等价的,但显然不起作用。基本上我想避免所有参数的显式self.xxx。
答案 0 :(得分:1)
这两者并不相同。 kwargs
接受关键字,你传递位置参数。 SQLAlchemy模型已经有一个初始化程序,它接受kwargs,你不需要提供自己的。
Logs_transaction(type='test', reference='test', ...)