SQL Model: Add relationship properties

MediaEntry now has a get_uploader (property) loading the
appropiate User object for the MediaEntry (and caches it).
MediaComment has the same for author as get_author.
This commit is contained in:
Elrond 2011-12-24 16:00:05 +01:00
parent c6263400cf
commit 88e90f41eb

View File

@ -4,6 +4,7 @@ from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import ( from sqlalchemy import (
Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey, Column, Integer, Unicode, UnicodeText, DateTime, Boolean, ForeignKey,
UniqueConstraint) UniqueConstraint)
from sqlalchemy.orm import relationship
from mediagoblin.db.sql.base import GMGTableBase from mediagoblin.db.sql.base import GMGTableBase
@ -71,6 +72,8 @@ class MediaEntry(Base):
UniqueConstraint('uploader', 'slug'), UniqueConstraint('uploader', 'slug'),
{}) {})
get_uploader = relationship(User)
## TODO ## TODO
# media_files # media_files
# media_data # media_data
@ -112,6 +115,8 @@ class MediaComment(Base):
content = Column(UnicodeText, nullable=False) content = Column(UnicodeText, nullable=False)
content_html = Column(UnicodeText) content_html = Column(UnicodeText)
get_author = relationship(User)
def show_table_init(): def show_table_init():
from sqlalchemy import create_engine from sqlalchemy import create_engine