Форум сайта python.su
Добрый день.
Подскажите каким образом организовать связь один ко многим в пределах одной таблице?
есть код:
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', backref='menu_horizontal_this', lazy='dynamic')
Отредактировано ivn (Март 13, 2017 22:06:19)
Офлайн
Нифига не понял. Т.е. Вам нужно self-MTM?
Приведу пример. Есть таблица товаров. В таблице есть поле, которое отвечает за “с этим товаром покупают”, которое ссылается на товары в этой же таблице. Это называется SELF-MTM…
Отредактировано 4kpt_V (Март 13, 2017 22:18:12)
Офлайн
4kpt_VПлохо понял Ваш пример, приведу вот такой скрин, мб он прояснит ситуацию:
Нифига не понял. Т.е. Вам нужно self-MTM?Приведу пример. Есть таблица товаров. В таблице есть поле, которое отвечает за “с этим товаром покупают”, которое ссылается на товары в этой же таблице. Это называется SELF-MTM…
Прикреплённый файлы:
Снимок.JPG (20,3 KБ)
Офлайн
Это не МТМ, а MTO. Если Вы правильно нарисовали кратность возле стрелочки. Да. Там нужен relationship. Это связь SELF-MTO.
Офлайн
4kpt_Vа как должен выглядеть код? что бы он учитывал наличия id иначе добавление не возможно
Это не МТМ, а MTO. Если Вы правильно нарисовали кратность возле стрелочки. Да. Там нужен relationship. Это связь SELF-MTO.
Офлайн
Эммм. Не понял вопроса. Вы делаете связь между объектами. И при создании связи указываете объекты. Во
Вот Вам пример из моего доклада на конференции:
# class Parent(Base): other_id = Column(Integer, ForeignKey("parent.id") ) other = relationship("Parent", remote_side=[id], backref=backref("main", order_by=family_name) ) )
Отредактировано 4kpt_V (Март 15, 2017 19:29:20)
Офлайн
4kpt_Vа что за доклад?
Эммм. Не понял вопроса. Вы делаете связь между объектами. И при создании связи указываете объекты. ВоВот Вам пример из моего доклада на конференции:
Отредактировано ivn (Март 14, 2017 14:27:40)
Офлайн
ivn
если возможно показать пример на моём коде с учетом схемы.
т.е. я пробую сделать так, что id_parent могу выбираться из id
спасибо большое.
Офлайн
4kpt_Vначал смотреть доклад, сразу появился вопрос, а есть слайды? так как плохо видно
доклад
Отредактировано ivn (Март 14, 2017 20:37:51)
Офлайн
4kpt_V
Неа. Моя задача не решить вашу, а объяснить Вам как это сделать
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', backref='menu_horizontal_this', lazy='dynamic')
Офлайн