python - Flask SQLAlchemy,通过类构造函数添加数据库记录时,'__init__ 只需要一个参数'
问题描述
在我的 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)
据我所知,这些类是以相同的方式定义的,并且我以相同的方式与它们交互,但是一个会引发错误,而另一个不会。
解决方案
推荐阅读
- unix - 在 Jenkinsfile 中的 Shell 脚本中访问 Jenkinsfiles 中定义的变量
- angular - 有没有办法重构类似的角度服务?
- php - 在 woocommerce 中向供应商发送 PO 时使用 COGS 字段
- python - 通过部分匹配 r 中的另一个数据帧来对数据帧进行子集化(对 python/pandas 解决方案开放)
- java - Maven 不运行单元测试 - 方法名称约定
- javascript - Jinja 模板未在 javascript 中正确呈现 Date 对象
- javascript - 使用 TypeScript 动态加载文件?
- java - 如何使用 AWS STS 为 s3 中的文件的特定资源创建只读和只写令牌
- c++ - 致命错误:unordered_map:没有这样的文件或目录(C++ 98,gcc 4.8.5,使用 CMAKE)
- javascript - 为什么 `export default` 会导出带有 `default` 的对象而不是对象本身?