FormAlchemy でカスケード セレクト ボックスを作成する方法がわかりません。住所選択フォームと同様に、次の 4 つのクラスがあります。
class Country(Base, DBBase):
__tablename__ = 'countries'
id = Column(Integer, primary_key = True)
name = Column(String)
def __init__(self, name):
self.name = name
class Province(Base, DBBase):
__tablename__ = 'provinces'
id = Column(Integer, primary_key = True)
country_id = Column(Integer, ForeignKey('countries.id'), nullable = True)
country = relationship('Country', backref = 'provinces')
name = Column(String)
def __init__(self, country, name):
self.country = country
self.name = name
class City(Base, DBBase):
__tablename__ = 'cities'
id = Column(Integer, primary_key = True)
province_id = Column(Integer, ForeignKey('provinces.id'), nullable = True)
province = relationship('Province', backref = 'cities')
name = Column(String)
def __init__(self, province, name):
self.province = province
self.name = name
class District(Base, DBBase):
__tablename__ = 'districts'
id = Column(Integer, primary_key = True)
city_id = Column(Integer, ForeignKey('cities.id'), nullable = True)
city = relationship('City', backref = 'districts')
name = Column(String)
def __init__(self, city, name):
self.city = city
self.name = name
ユーザーが第 1 レベルの選択ボックス (ここでは国フィールド) からオプションを選択すると、第 2 レベルの選択ボックスには、対応する第 1 レベルの選択ボックスに属するものがすべてリストされます (「国」フィールドで米国を選択した場合は、「州/州」)。フィールドには、すべての州が米国に属していることを示す必要があります)。三段目と四段目の箱はこんな感じ。すべてのデータは、上記の 4 つのクラスのように並べ替えられます。問題は、FormAlchemy でそのようなフォームを作成する方法です。