Форум сайта python.su
ivn
Нет. Вы невнимательно посмотрели мой пример и не смотрели презентацию…
Офлайн
4kpt_Vя вот смотрю на Ваш код и вижу, что там parent.id, но в самом классе Parent нет поля id, так же смотрю на "main и не вижу закрывающейся кавычки и судя по всему не хватает запятой.
ivnНет. Вы невнимательно посмотрели мой пример и не смотрели презентацию…
Офлайн
Я понял. Вы мой доклад вообще не удосужились посмотреть. Там схема совпадает с Вашей. Только названия полей другие. Код поправил. Почему-то сожрало при переносе в LibreOffice Impress.
ivn
в документации sqlalchemy есть действительно как One To Many и Many To One, зачем это сделано мне пока не ясно.
Офлайн
4kpt_Vда
почему они различаются?
Офлайн
ivn
да
Прикреплённый файлы:
09.png (316,9 KБ)
Офлайн
спасибо, я посмотрю еще раз, буду изучать
думаю сделать вот так:
menu_horizontal = db.relationship('MenuHorizontal', remote_side=[id], backref='menu_horizontal_this')
Отредактировано ivn (Март 16, 2017 19:44:34)
Офлайн
4kpt_VУ Вас есть еще доклады? -) или мб какие то ресурсы?
Офлайн
ivn
У меня есть доклады, но не по алхимии.
P.S. Вот теперь правильно сделали
Офлайн
4kpt_Vбыло бы интересно посмотреть.
ivnУ меня есть доклады, но не по алхимии.P.S. Вот теперь правильно сделали
class MenuHorizontal(db.Model): __tablename__ = 'menu_horizontal' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(45), nullable=False) id_contents = db.Column(db.Integer, db.ForeignKey('contents.id'), nullable=False) id_parent = db.Column(db.Integer, db.ForeignKey('menu_horizontal.id'), nullable=False) menu_horizontal = db.relationship('MenuHorizontal', remote_side=[id], backref='menu_horizontal_this')
q = models.MenuHorizontal(name='menu', id_contents=1, id_parent=1) db.session.add(q) db.session.commit() q = models.MenuHorizontal(name='menu1', id_contents=1, id_parent=3) db.session.add(q) db.session.commit()
Table [menu_horizontal] Fields: 4 [id]: INTEGER NOT NULL [name]: VARCHAR(45) NOT NULL [id_contents]: INTEGER NOT NULL [id_parent]: INTEGER NOT NULL Foreign Keys: 2 [] ([id_contents]) REFERENCES [contents]([id]) [] ([id_parent]) REFERENCES [menu_horizontal]([id]) Indexes: 1 [] PRIMARY [id] Triggers: 0 Unique constraints: 0 Check constraints: 0
Отредактировано ivn (Март 16, 2017 21:13:09)
Офлайн
Так. Смотрю Вы не до конца понимаете что происходит
# q_f = models.MenuHorizontal(name='menu_parent') db.session.add(q_f) q_2 = models.MenuHorizontal(name='menu_slave_1') q_3 = models.MenuHorizontal(name='menu_slave_2') q_f.menu_horizontal = q_2 q_f.menu_horizontal = q_3 db.session.commit() # parent = db.session.query(models.MenuHorizontal).filter(models.MenuHorizontal.name == 'menu_parent').one() for menu_slave in parent.menu_horizontal_this: print(slave.name)
Офлайн