У меня есть простая структура данных, в которой таблица фильмов имеет внешний ключ к таблице стран.
Чтобы получить все фильмы из одной и той же страны, у меня есть свойство same_country_films, самоотносительное отношение.
Это почти правильно делает работу, однако, он также включает сам фильм в список. Как я могу исключить это и просто другие фильмы ?
Большое спасибо!
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.orm import mapper, relationship
metadata = MetaData()
country_table = Table('country', metadata,
Column('id', String, primary_key=True),
Column('name', String),
)
film_table = Table('film', metadata,
Column('id', Integer, primary_key=True),
Column('title', String),
Column('year', Integer),
Column('country_id', Integer, ForeignKey('country.id'))
)
class Country(object):
pass
class Film(object):
pass
mapper(Country, country_table)
mapper(Film, film_table,
properties={
'country':relationship(
Country,
backref='films'),
'same_country_films':relationship(
Film,
primaryjoin=film_table.c.country_id==\
film_table.c.country_id,
foreign_keys=[
film_table.c.country_id,
]
)
}
)