Как получить возвращаемое значение с помощью peewee?

Я использую peewee в своем проекте, в моей таблице есть поле с именем id, а также его автоинкремент и первичный ключ.
Мне нужно получить значение идентификатора, когда вызывается функция вставки API.
Моя модель

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 не может получить значение идентификатора,
Кажется, можно было бы использовать sqlalchemy, я знаю, что openstack использует sqlalchemy, и их результат мог бы получить идентификатор auto_increment в функции create.

3 ответа

Пытался query.id?


Model.create() создал новый экземпляр модели.

Первичный ключ будет автоматически извлечен и сохранен в экземпляре модели.

Использование IntegerField(primary_key=True) отличается от использования PrimaryKeyField (или AutoField в 3.0a). Первое - это целое число, которое действует как pk. Последний предназначен для автоинкремента.

http://docs.peewee-orm.com/en/latest/peewee/models.html

Реши это.
Удалить поля id (id = IntegerField(primary_key=True)) в модели,
получит значение id в запросе.

Другие вопросы по тегам