Как получить возвращаемое значение с помощью 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. Последний предназначен для автоинкремента.
Реши это.
Удалить поля id (id = IntegerField(primary_key=True)) в модели,
получит значение id в запросе.