Абстрактная базовая модель Flask-SQLAlchemy

В моем приложении Flask-SQLAlchemy я хочу добавить несколько полей (создано (по | on), изменено (по | по)) в каждую модель/таблицу.

мой код прямо сейчас

from .. import db


class Brand(db.Model):
    __tablename__ = 'md_brands'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True, nullable=False)

    def __repr__(self):
        return u'<Brand {}>'.format(self.name)

Я не уверен, что лучше использовать Mixins или как-то расширить базу db.Model (или даже есть лучший способ сделать это).

Как (и почему) лучше всего добавлять такие поля (созданные (по|на), измененные (по|по)) во все мои модели?


person Daniel Kreiseder    schedule 31.07.2014    source источник


Ответы (2)


Оба они почти одинаковы. Вот Mixin, который я использую

  class ModelMixin(object):
      def __repr__(self):
          return unicode(self.__dict__)

      @property
      def public_view(self):
          """return dict without private fields like password"""
          return model_to_dict(self, self.__class__)  

а потом

class User(db.Model, ModelMixin):
      """ attributes with _  are not exposed with public_view """
      __tablename__ = "users"
      id = db.Column(db.Integer, primary_key=True)
person Lukasz Madon    schedule 31.07.2014