0

我在我的项目中使用 peewee,我的表有一个名为 id 的文件,它是自动增量和主键。
调用 API 插入函数时,我需要获取 id 值。
我的模型是

class UserModel(pw_db.Model):
    id = IntegerField(primary_key=True)
    username = CharField()
    phone = CharField()
    status = IntegerField()

    class Meta:
        db_table = 't_test'

我的插入功能是

def create_user(body=None):
    query = models.UserModel.create(
        username=body['userName'],
        phone=body.get('phone', None),
        status=body.get('status', 1)
    )
    return query

create_user 返回值无法获取 id 值,
似乎可以使用 sqlalchemy 进行 id,我知道 openstack 使用 sqlalchemy ,他们的结果可以在 create 函数中获取 auto_increment id。

4

3 回答 3

0

试过了query.id吗?


Model.create()创建了一个新的模型实例。

主键将被自动检索并存储在模型实例中。

于 2018-01-05T09:32:32.420 回答
0

使用 IntegerField(primary_key=True)使用 PrimaryKeyField(或 3.0a 中的 AutoField)不同。前者只是一个充当pk的整数。后者用于自动递增。

http://docs.peewee-orm.com/en/latest/peewee/models.html#manually-specifying-primary-keys

于 2018-01-08T18:23:08.530 回答
-1

解决这个问题。
删除模型中 id (id = IntegerField(primary_key=True)) 的字段,
将在查询中获得 id 值。

于 2018-01-08T02:21:18.160 回答