如何使用peewee获取插入返回值?

时间:2018-01-05 09:18:26

标签: python peewee flask-peewee

我在我的项目中使用了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,我知道openstack使用sqlalchemy,他们的结果可能会在create function中获得auto_increment id。

3 个答案:

答案 0 :(得分:0)

尝试query.id

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

解决它。
在Model中删除id(id = IntegerField(primary_key = True))字段,
在查询中获取id值。

相关问题