def sa_news_model(sa_news_abc, sa_declarative_base): return sa.create_news(sa_news_abc, sa_declarative_base)
@property def user_rating(self): return self.get_rating(user=current_user) def get_rating(self, user=None): user = user or current_user if user.is_anonymous: return None try: rating = [r for r in self.ratings if r.user == self.owner][0] return rating.positive except IndexError: return None News = create_news(NewsABC, db.Model) class NewsSchema(get_base_schema(News)): user_rating = fields.Boolean(allow_none=True) class Rating(db.Model): @declared_attr def __table__args(cls): return (UniqueConstraint('user_id', 'news_id'),) @declared_attr def user_id(cls): return Column(Integer, ForeignKey(User.id))