В моем API я часто использую такой шаблон:
from app.models import Timecards
def add_timecard(payload):
new_timecard = Timecards(**payload)
db.session.add(new_timecard)
db.session.commit()
Где Timecards
:
class Timecards(db.Model):
__tablename__ = "timesheet_line"
id = db.Column("line_id", db.Integer, primary_key=True, autoincrement=True)
description = db.Column("line_description", db.String(255))
ref_number = db.Column("line_ref_number", db.String(255))
notes = db.Column("line_notes", db.String(255))
approved_by_id = db.Column("line_approved_by_id", db.String(255))
date_approved = db.Column("line_date_approved", db.DateTime)
date_submitted = db.Column("line_date_submitted", db.DateTime)
time_started = db.Column("line_time_started", db.DateTime)
time_ended = db.Column("line_time_ended", db.DateTime)
user_id = db.Column("line_user_id", db.Integer)
is_active = db.Column("line_isActive", db.Integer)
У меня нет пользовательского __init__
метода, определенного вэтот класс.Все мои другие классы прекрасно работают, когда я взаимодействую с ними таким образом, но по какой-то причине этот конкретный класс, кажется, принимает только этот автоматически переданный self
аргумент и отклоняет мой payload
с ошибкой
__init__() takes exactly 1 argument (2 given)
Например, у меня есть этот класс:
class ServicesRendered(db.Model):
__tablename__ = "services_rendered"
id = db.Column("service_id", db.Integer, primary_key=True, autoincrement=True)
notes = db.Column("service_notes", db.String(255))
status = db.Column("service_status", db.String(255))
time_open = db.Column("service_timeOpen", db.DateTime)
time_close = db.Column("service_timeClose", db.DateTime)
is_active = db.Column("service_isActive", db.Integer)
, и следующий код отлично работает:
def add_services_rendered(payload):
new_services_rendered = ServicesRendered(**payload)
Насколько я могу судить, эти классы определены одинаково, и яЯ взаимодействую с ними таким же образом, но один выдает ошибку, а другой нет.