mein Filter auf Kinder funktioniert nicht. Ich bin mir nicht sicher, was es falsch gemacht wird.Flask sqlalchemy - viele zu viele Beziehung - Filtern nach Kinderlevel
country.py
product_country = Table('product_country', Base.metadata,
Column('product_id', Integer, ForeignKey('product.id'), primary_key=True),
Column('country_id', Integer, ForeignKey('country.id'), primary_key=True)
)
class Country(Base):
__tablename__="country"
id = Column(Integer, primary_key=True)
name = Column(String(200))
products = relationship(Product, secondary=product_country, backref='countries')
product.py
class Product(Base):
__tablename__="product"
id = Column(Integer, primary_key=True)
color = Column(Integer)
....
dann sqlalchemy Suche:
country = s.query(Country).join(Country.products).filter(Country.id==1).filter(Product.color==1).first()
Nun, ich Land mit id = 1, was ist, was ich will , aber in der Liste country.products würde ich nur Produkte mit Farbe = 1 erwarten, aber es sind alle Produkte dem Land zugeordnet. Bitte könnten Sie mir helfen. Danke
Können Sie ein vollständigeres Snippet von 'Product' posten, da wir nicht sehen können, wie' Product.color' definiert ist. – bgse
@bgse - Ich habe die Produktklasse aktualisiert, in der die Farbe jetzt definiert ist. Aber es geht nicht um die Definition von Farbe. Sie können Farbe durch ID in sqlalchemy Abfrage ersetzen und es gibt das gleiche Problem – user4206969