2

我正在使用 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)) 

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

4

0 回答 0