复制两个共享相同mixin的SQLAlchemy模型

时间:2015-10-02 03:48:53

标签: python sqlalchemy mixins

假设我们有两个定义如下的类:

class BookMixin(object):
    id = Column(Integer, primary_key=True)
    author = Column(String(20), nullable=False)
    description = Column(Unicode(2000), nullable=False)

    @declared_attr
    def publisher(cls):
        return  Column(String(20), ForeignKey('publisher.name'), nullable=False)

    @declared_attr
    def publisher_rel(cls):
         return relationship("Publisher")




class AntiqueBook(BookMixin,Base):
    __tablename__ = 'antique_book'
    auction_house = Column(Unicode(100))


class PhotoBook(BookMixin, Base):
    __tablename__ = 'photo_book'
    photographer = Column(Unicode(200))

假设我们得到AntiqueBookantiqueBook的实例,从antiqueBook创建PhotoBook实例的最佳方法是什么,因为这两个类都使用相同的mixin

  • 定义 init ()方法?哪里?如何?
  • 定义一个copy()方法?哪里?如何

请列出这种情况的最佳方法。

0 个答案:

没有答案