mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Add a mapped_classes list, and a translation_classes list to each mapped class
This commit is contained in:
parent
bd9fa0d6a6
commit
d961cfe1c7
2 changed files with 13 additions and 2 deletions
|
@ -145,6 +145,9 @@ def create_translation_table(_table_name, foreign_class, relation_name,
|
||||||
setattr(foreign_class, name + '_map',
|
setattr(foreign_class, name + '_map',
|
||||||
association_proxy(relation_name, name, creator=creator))
|
association_proxy(relation_name, name, creator=creator))
|
||||||
|
|
||||||
|
# Add to the list of translation classes
|
||||||
|
foreign_class.translation_classes.append(Translations)
|
||||||
|
|
||||||
# Done
|
# Done
|
||||||
return Translations
|
return Translations
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ import collections
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from sqlalchemy import Column, ForeignKey, MetaData, PrimaryKeyConstraint, Table, UniqueConstraint
|
from sqlalchemy import Column, ForeignKey, MetaData, PrimaryKeyConstraint, Table, UniqueConstraint
|
||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base, DeclarativeMeta
|
||||||
from sqlalchemy.ext.associationproxy import association_proxy
|
from sqlalchemy.ext.associationproxy import association_proxy
|
||||||
from sqlalchemy.orm import backref, relation
|
from sqlalchemy.orm import backref, relation
|
||||||
from sqlalchemy.orm.session import Session
|
from sqlalchemy.orm.session import Session
|
||||||
|
@ -60,8 +60,16 @@ class TableSuperclass(object):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return unicode(self).encode('utf8')
|
return unicode(self).encode('utf8')
|
||||||
|
|
||||||
|
mapped_classes = []
|
||||||
|
class TableMetaclass(DeclarativeMeta):
|
||||||
|
def __init__(cls, name, bases, attrs):
|
||||||
|
super(TableMetaclass, cls).__init__(name, bases, attrs)
|
||||||
|
if hasattr(cls, '__tablename__'):
|
||||||
|
mapped_classes.append(cls)
|
||||||
|
cls.translation_classes = []
|
||||||
|
|
||||||
metadata = MetaData()
|
metadata = MetaData()
|
||||||
TableBase = declarative_base(metadata=metadata, cls=TableSuperclass)
|
TableBase = declarative_base(metadata=metadata, cls=TableSuperclass, metaclass=TableMetaclass)
|
||||||
|
|
||||||
|
|
||||||
### Need Language first, to create the partial() below
|
### Need Language first, to create the partial() below
|
||||||
|
|
Loading…
Reference in a new issue