在我的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)
据我所知,这些类是以相同的方式定义的,并且我以相同的方式与它们进行交互,但是一个抛出错误,而另一个则不会。