У меня есть довольно простой CRUDMixin
нагрузить отношения в методе to_json
class CRUDMixin(object):
""" create, read, update and delete methods for SQLAlchemy """
id = db.Column(db.Integer, primary_key=True)
@property
def columns(self):
return [ c.name for c in self.__table__.columns ]
def read(self):
""" return json of this current model """
return dict([ (c, getattr(self, c)) for c in self.columns ])
# ...
Для что-то вроде Article
класса, который будет подкласс этого, он может иметь отношения с другим классом, например, так:
author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
Единственная реальная проблема заключается в том, что она не будет возвращать какие-либо детали пользователя в json. В идеале, должен JSON выглядеть следующим образом:
{
'id': 1234,
'title': 'this is an article',
'body': 'Many words go here. Many shall be unread. Roman Proverb.',
'author': {
'id': 14
'name': 'Thor',
'joined': October 1st, 1994
}
}
Как это прямо сейчас, это будет просто дать author_id: 14
.
Могу ли я определить, является ли столбец отношениями и загружать его как json так же?