金字塔+ FormAlchemy模型的改进

时间:2012-03-13 16:23:37

标签: python sqlalchemy pyramid formalchemy

我目前有两个独立的模型(如下所示),适用于我的小规模/测试应用。但是,当有超过5000个客户通过FK下拉框搜索时,每次输入注释时都会很烦人。

我的问题是,无论如何我可以将Note模型放在我的Customer模型中吗?那么从我的Customer模型中我可以直接添加注释?

#models.py
samples_to_customer = Table('samples_to_customer', Base.metadata,
  Column('customer_id', Integer, ForeignKey('customer.id')),
  Column('sample_id', Integer, ForeignKey('samples.id'))
  )

#Create a cusotmer model to store customer numbers

class Customer(Base):
    __tablename__ = 'customer'
    __acl__ = [
            (Allow, 'admin', ALL_PERMISSIONS),
            (Allow, 'saff', ('view', 'edit')),
        ]
    id = Column(Integer, primary_key=True)
    name = Column(Unicode, unique=True) #this will be the variable used to search the existing db
    customer_samples = relationship('Sample', secondary='samples_to_customer', backref='samples')
    sales_rep = Column(Integer, ForeignKey('rep.id'))
    rep = relationship('Rep', backref='rep')

    def __unicode__(self):
        return self.name

# This model will have its own entry view/page a user logs on and enters notes (according to a customer
# number) they then get stored/saved onto the Customers account
class Note(Base):
    __tablename__ = 'note'
    __acl__ = [
            (Allow, 'admin', ALL_PERMISSIONS),
            (Allow, 'staff', ('view', 'edit')),
        ]    
    id = Column(Integer, primary_key=True)
    name = Column(Unicode)
    pub_date = Column(Date)
    customer_no = Column(Integer, ForeignKey('customer.id'))
    customer = relationship('Customer', backref='notes')

    def __unicode__(self):
        return self.name

1 个答案:

答案 0 :(得分:1)

我还是找不到这个。

但我仍然对金字塔和形式化很新。

我决定编写自己的管理/模型界面,让我可以使用金字塔视图和jinja2模板完成我需要的操作。不使用formalchemy和/或javascript。

我来自django所以没有意识到编写我自己的模型管理员视图和模板是多么容易。