+ primaryjoin=and_(
+ PokemonAbility.ability_id == Ability.id,
+ PokemonAbility.is_dream == False
+ ),
+ back_populates='abilities',
+)
+Ability.dream_pokemon = relation(Pokemon,
+ secondary=PokemonAbility.__table__,
+ primaryjoin=and_(
+ PokemonAbility.ability_id == Ability.id,
+ PokemonAbility.is_dream == True
+ ),
+ back_populates='dream_ability',