сброс sqlalchemy () и получает вставленный идентификатор?

При использовании фабрики код все еще на самом деле ответственен за создание объектов. DI Вы производите ту ответственность на стороне перед другим классом или платформой, которая является отдельной от Вашего кода.

101
задан MarredCheese 1 September 2019 в 00:28
поделиться

2 ответа

Ваш пример кода должен работать как есть. SQLAlchemy должен предоставить значение для f.id , предполагая, что это автоматически генерируемый столбец первичного ключа. Атрибуты первичного ключа заполняются сразу же в процессе flush () по мере их создания, и никакого вызова commit () не требуется. Итак, ответ здесь заключается в одном или нескольких из следующего:

  1. Детали вашего сопоставления
  2. Если есть какие-либо странные особенности используемого серверного интерфейса (например, SQLite не генерирует целочисленные значения для составного первичного key)
  3. Что сообщает сгенерированный SQL, когда вы включаете echo
56
ответ дан 24 November 2019 в 04:42
поделиться

Вам следует попробовать использовать session.save_or_update (f) вместо session.add (f) .

-7
ответ дан 24 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: