Найти - Пользователи
Полная версия: sqlalchemy models
Начало » Python для новичков » sqlalchemy models
1 2
ilnur
4kpt_III
Могут, но в случае связывания одна модель должна знать о другой.
ага. значит надо явно передать класс? я правильно понял?

я так и делал. но чето не работало. что не работало, напишу позже. щас не успеваю.
за помощь спасибо
4kpt_III
ilnur
за помощь спасибо

За что? Я вообще не понял сначала, что Вы хотите. Думал у Вас есть необходимость моделей, но так как старый проект, то там все на уровне таблиц. Поэтому Вам необходимо перевести это все в синтаксис табличный. Короче. Запутался. Поэтому сначала послал по неверному пути, так что приношу свои извинения
ilnur
что я хочу. чтобы у меня были таблицы в БД и модели

таблицы в БД я создал миграцией. таблицы в БД есть, захожу и смотрю как бы.

потом я сделал модели.

и используя эти модели пытаюсь сохранить объекты в БД

session = sessionmaker(session_engine)()
model1_inst = model1.Model1()
session.add(model1_inst)
session.commit()

model2_inst = model2.Model(model1_id=model1_inst.id)
session.add(model2_inst)
session.commit()
4kpt_III
Ну вообще-то делается не совсем так Если Вы работали с алембиком, то странно использование такого подхода. С алембиком делается так:
- фиксируется старая схема БД;
- добавляются новые элементы;
- создаются миграции по новой схеме БД;
- миграция накатывается на БД.

Теперь по Вашему вопросу. Раз миграции накатились успешно и просмотр внутренней структуры БД показывает, что все в порядке, значит ошибка где-то в моделях. Я просто предполагаю, что одна модель ничего не знает о другой, соответственно маппер связать relationship не может.
vczm
@ilnur Чтобы избежать вышеописанной ошибки можно попробовать описать модели в одном файле.
Если разбивать по файлам, то можно попробовать так
models
├── __init__.py
├── model1.py
├── model2.py
└── model3.py

В __init__.py добавить
import models.model1.py
import models.model2.py
import models.model3.py
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB