mirror of
https://github.com/veekun/pokedex.git
synced 2024-08-20 18:16:34 +00:00
Make Pokemon.form an actual relation
This commit is contained in:
parent
4cd68fb5e3
commit
1f2df80a00
1 changed files with 8 additions and 6 deletions
|
@ -1099,12 +1099,6 @@ class Pokemon(TableBase):
|
|||
|
||||
### Stuff to handle alternate Pokémon forms
|
||||
|
||||
@property
|
||||
def form(self):
|
||||
u"""Returns the Pokémon's form, using its default form as fallback."""
|
||||
|
||||
return self.unique_form or self.default_form
|
||||
|
||||
@property
|
||||
def is_base_form(self):
|
||||
u"""Returns True iff the Pokémon is the base form for its species,
|
||||
|
@ -2021,6 +2015,14 @@ Pokemon.types = relation(Type,
|
|||
innerjoin=True,
|
||||
order_by=PokemonType.slot.asc(),
|
||||
backref=backref('pokemon', order_by=Pokemon.order))
|
||||
Pokemon.form = relation(PokemonForm,
|
||||
primaryjoin=or_(
|
||||
PokemonForm.unique_pokemon_id==Pokemon.id,
|
||||
and_(PokemonForm.unique_pokemon_id==None,
|
||||
PokemonForm.form_base_pokemon_id==Pokemon.id,
|
||||
PokemonForm.is_default==True)
|
||||
),
|
||||
uselist=False)
|
||||
|
||||
PokemonDexNumber.pokedex = relation(Pokedex,
|
||||
innerjoin=True, lazy='joined')
|
||||
|
|
Loading…
Reference in a new issue