在flask admin中选择过滤外键列

时间:2015-02-24 15:50:58

标签: python-2.7 sqlalchemy relation flask-admin

我正在使用Flask-admin和SQLAlchemy。 我想基于父表的外键选择来限制外键的选择。

class City(Base):
   __tablename__ = 'city'
   id = Column(Integer, primary_key=True)
   name = Column(String, nullable=False)

   def __unicode__(self):
      return self.name

class Street(Base):
   __tablename__ = 'street'
   id = Column(Integer, primary_key=True)
   name = Column(String, nullable=False)
   city = Column(Integer, ForeignKey(City.id), nullable=False)
   city_ref = relationship(City) 

   def __unicode__(self):
      return self.name

class Adress(Base):
   __tablename__ = 'adress'
   id = Column(Integer, primary_key=True)
   familiyname = Column(String, nullable=False)
   street = Column(Integer, ForeignKey(Street.id), nullable=False)
   street_ref = relationship(Street)
   city_ref = relationship("City", 
              secondary="join(Street,City,Street.city==City.id)",
              primaryjoin="and_(Adress.street==Street.id)",
              secondaryjoin="City.id == Street.city") 

   def __unicode__(self):
      return self.name

现在我想为一个家庭添加一个地址。但首先我想选择城市,并根据这个选择我想过滤可用的街道。 怎么办呢?

admin.add_view(sqla.ModelView(Adress, db.session)) 

这也会显示城市,但选择城市时不会过滤街道列。

0 个答案:

没有答案