Ich erhalte diesen Fehler TypeError: __init__() takes exactly 1 argument (5 given)
, wenn ich versuche, eine Login-Datenbank zu speichern.Initialisiere Konstruktor mit mehreren Parametern
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)
Ich weiß, dass ich so etwas wie dieses verwenden:
def __init__(self, type, reference, phone_number, user_id):
self.type = type
self.reference = reference
self.phone_number = phone_number
self.user_id = user_id
Aber auf diese Weise ist ärgerlich, wenn ich viele Parameter haben. Ich denke also, dass der obige Konstruktor gleichwertig ist, aber scheinbar nicht funktioniert. Grundsätzlich möchte ich die explizite self.xxx für alle Parameter vermeiden.