From 4aae47ee918792cf464f33aa6a870453c3091e21 Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Mon, 20 Feb 2017 01:06:31 +0100 Subject: wip --- src/web/models/bookmark.py | 15 +++++++++++---- src/web/models/tag.py | 14 +++++++++----- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/web/models/bookmark.py b/src/web/models/bookmark.py index b62285b7..6101a5f0 100644 --- a/src/web/models/bookmark.py +++ b/src/web/models/bookmark.py @@ -34,6 +34,12 @@ from sqlalchemy.ext.associationproxy import association_proxy from web.models.right_mixin import RightMixin +bookmarktags_table = db.Table('bookmarktags', db.metadata, + db.Column('bookmark_id', db.Integer, db.ForeignKey("bookmark.id"), + primary_key=True), + db.Column('tag_text', db.String, db.ForeignKey("BookmarkTag.text"), + primary_key=True) +) class Bookmark(db.Model, RightMixin): """ @@ -49,10 +55,11 @@ class Bookmark(db.Model, RightMixin): user_id = db.Column(db.Integer(), db.ForeignKey('user.id')) # relationships - tag_objs = db.relationship('BookmarkTag', back_populates='bookmark', - cascade='all,delete-orphan', - lazy=False, - foreign_keys='[BookmarkTag.bookmark_id]') + tag_objs = db.relationship("BookmarkTag", secondary=lambda: bookmarktags_table) + # tag_objs = db.relationship('BookmarkTag', back_populates='bookmark', + # cascade='all,delete-orphan', + # lazy=False, + # foreign_keys='[BookmarkTag.bookmark_id]') tags = association_proxy('tag_objs', 'text') diff --git a/src/web/models/tag.py b/src/web/models/tag.py index 28727dbf..c23d15ea 100644 --- a/src/web/models/tag.py +++ b/src/web/models/tag.py @@ -20,15 +20,19 @@ class ArticleTag(db.Model): class BookmarkTag(db.Model): - text = db.Column(db.String, primary_key=True, unique=False) + __tablename__ = 'BookmarkTag' + #id = db.Column(db.Integer, primary_key=True) + text = db.Column(db.String, primary_key=True) # foreign keys - bookmark_id = db.Column(db.Integer, db.ForeignKey('bookmark.id', ondelete='CASCADE'), - primary_key=True) + # bookmark_id = db.Column(db.Integer, db.ForeignKey('bookmark.id', ondelete='CASCADE'), + # primary_key=True) # relationships - bookmark = db.relationship('Bookmark', back_populates='tag_objs', - foreign_keys=[bookmark_id]) + # bookmark = db.relationship('Bookmark', back_populates='tag_objs', + # single_parent=True, + # cascade="all, delete-orphan", + # foreign_keys=[bookmark_id]) def __init__(self, text): self.text = text -- cgit