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))
これには都市も表示されますが、都市が選択された場合、通りの列はフィルタリングされません。