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
|
### 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
|
@property
|
||||||
def is_base_form(self):
|
def is_base_form(self):
|
||||||
u"""Returns True iff the Pokémon is the base form for its species,
|
u"""Returns True iff the Pokémon is the base form for its species,
|
||||||
|
@ -2021,6 +2015,14 @@ Pokemon.types = relation(Type,
|
||||||
innerjoin=True,
|
innerjoin=True,
|
||||||
order_by=PokemonType.slot.asc(),
|
order_by=PokemonType.slot.asc(),
|
||||||
backref=backref('pokemon', order_by=Pokemon.order))
|
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,
|
PokemonDexNumber.pokedex = relation(Pokedex,
|
||||||
innerjoin=True, lazy='joined')
|
innerjoin=True, lazy='joined')
|
||||||
|
|
Loading…
Reference in a new issue