Python 通过SQLAlchemy模型插入时不要插入主键

Python 通过SQLAlchemy模型插入时不要插入主键,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我在测试SQLAlchemy+Flask+Postgres应用程序时出错。在我编写的API端点上执行POST时,我在命令行中看到以下错误: sqlalchemy.exc.ProgrammingError:(psycopg2.errors.GeneratedAlways)无法插入列“rs\u id” 它似乎正在尝试执行以下操作: SQL:在ref_status(rs_id,rs_status_name)值(nextval('status_id_seq'),%(rs_status_name)中插入返

我在测试SQLAlchemy+Flask+Postgres应用程序时出错。在我编写的API端点上执行POST时,我在命令行中看到以下错误:

sqlalchemy.exc.ProgrammingError:(psycopg2.errors.GeneratedAlways)无法插入列“rs\u id”

它似乎正在尝试执行以下操作:

SQL:在ref_status(rs_id,rs_status_name)值(nextval('status_id_seq'),%(rs_status_name)中插入返回ref_status.rs_id

模型:

class Status(Base):
    __tablename__ = "ref_status"

    id = Column(Integer, Sequence('status_id_seq'), name="rs_id", primary_key=True)
    name = Column(String, name="rs_status_name")

    def __repr__(self):
        return f"<Status name={self.name} id={self.id} />"

    def to_dict(self):
        return {
            "id": self.id,
            "name": self.name,
        }
API端点:

    if request.method=="POST":

        name = request.form['name']

        if len(name) == 0:
            return "Invalid name", 400

        status = Status(name=name)

        sesh.add(status)
        sesh.commit()

        return jsonify({
            "result":True,
            "id": status.id,
            "name": name
        })

当仍然插入记录并且主键被序列值填充时,如何避免此错误?我试着用谷歌搜索错误,但我还没有找到一个适合我的情况的解决方案。我的Google fu今天很弱…

我从模型中的
列定义中删除了
序列

不要创建一个自动生成的identody字段,将其设置为单个整数。如果您的id来自另一方,我不明白为什么要创建一个自动生成的列。
    if request.method=="POST":

        name = request.form['name']

        if len(name) == 0:
            return "Invalid name", 400

        status = Status(name=name)

        sesh.add(status)
        sesh.commit()

        return jsonify({
            "result":True,
            "id": status.id,
            "name": name
        })