我在我的项目中使用了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。
答案 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值。