в точке, которую вы запрашиваете model.id
, новая модель еще не достигла базы данных;pyramid ждет, пока обработчик запроса не вернется, прежде чем совершить ожидающую транзакциюЧтобы получить идентификатор раньше, вы должны очистить сессию.Добавить:
model = Model('some_title', 'some text')
session.add(model)
<em><strong>session.flush()</strong></em>
return HTTPFound(location='/ads/%s/%s' % (model.id, model.title))