diff options
author | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2012-03-28 13:19:11 +0200 |
---|---|---|
committer | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2012-03-28 13:21:47 +0200 |
commit | 02f07bfe145fb4c3a31101c48202224d803004da (patch) | |
tree | 2df4b8368cb5e57da06cbb989c9d0cd28bf99369 | |
parent | 352a1807659b0977c0ccdb8d4bad64aa4f5b5277 (diff) | |
download | mediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.tar.lz mediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.tar.xz mediagoblin-02f07bfe145fb4c3a31101c48202224d803004da.zip |
411: Add relationship and backrefs to media_data tables.
Adding proper relationship()s and especially backref()s
will delete media_data rows along with the main MediaEntry.
This fixes #411.
-rw-r--r-- | mediagoblin/media_types/ascii/models.py | 6 | ||||
-rw-r--r-- | mediagoblin/media_types/image/models.py | 4 | ||||
-rw-r--r-- | mediagoblin/media_types/video/models.py | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/mediagoblin/media_types/ascii/models.py b/mediagoblin/media_types/ascii/models.py index a35e6958..865c216c 100644 --- a/mediagoblin/media_types/ascii/models.py +++ b/mediagoblin/media_types/ascii/models.py @@ -18,8 +18,8 @@ from mediagoblin.db.sql.base import Base from sqlalchemy import ( - Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, - UniqueConstraint) + Column, Integer, ForeignKey) +from sqlalchemy.orm import relationship, backref class AsciiData(Base): @@ -28,6 +28,8 @@ class AsciiData(Base): # The primary key *and* reference to the main media_entry media_entry = Column(Integer, ForeignKey('core__media_entries.id'), primary_key=True) + get_media_entry = relationship("MediaEntry", + backref=backref("ascii__media_data", cascade="all, delete-orphan")) DATA_MODEL = AsciiData diff --git a/mediagoblin/media_types/image/models.py b/mediagoblin/media_types/image/models.py index 5eb20ed4..fc518daa 100644 --- a/mediagoblin/media_types/image/models.py +++ b/mediagoblin/media_types/image/models.py @@ -19,6 +19,7 @@ from mediagoblin.db.sql.base import Base from sqlalchemy import ( Column, Integer, Float, ForeignKey) +from sqlalchemy.orm import relationship, backref from mediagoblin.db.sql.extratypes import JSONEncoded @@ -28,6 +29,9 @@ class ImageData(Base): # The primary key *and* reference to the main media_entry media_entry = Column(Integer, ForeignKey('core__media_entries.id'), primary_key=True) + get_media_entry = relationship("MediaEntry", + backref=backref("image__media_data", cascade="all, delete-orphan")) + width = Column(Integer) height = Column(Integer) exif_all = Column(JSONEncoded) diff --git a/mediagoblin/media_types/video/models.py b/mediagoblin/media_types/video/models.py index cf42b7c8..35ed92bf 100644 --- a/mediagoblin/media_types/video/models.py +++ b/mediagoblin/media_types/video/models.py @@ -19,6 +19,7 @@ from mediagoblin.db.sql.base import Base from sqlalchemy import ( Column, Integer, SmallInteger, ForeignKey) +from sqlalchemy.orm import relationship, backref class VideoData(Base): @@ -27,6 +28,9 @@ class VideoData(Base): # The primary key *and* reference to the main media_entry media_entry = Column(Integer, ForeignKey('core__media_entries.id'), primary_key=True) + get_media_entry = relationship("MediaEntry", + backref=backref("video__media_data", cascade="all, delete-orphan")) + width = Column(SmallInteger) height = Column(SmallInteger) |