Suggestion : Search with dynamic parameters

This commit is contained in:
Colin Goutte 2023-08-27 23:08:35 +02:00
parent b985e7590a
commit 6a931228c3
1 changed files with 13 additions and 7 deletions

20
crud.py
View File

@ -42,17 +42,23 @@ def get_all_movies(db: Session):
return db_movie.all()
def search_movie(db: Session, term: str):
def search_movie(db: Session, term: str = "", *criterions):
db_movies = db.query(models.Movie)
exp = f"%{term}%"
# Use regex instead ? still \W is had to escape
db_movie = db.query(models.Movie).where(
sqlalchemy.or_(
models.Movie.title.like(exp),
models.Movie.description.like(exp),
if term:
db_movies = db_movies.where(
sqlalchemy.or_(
models.Movie.title.like(exp),
models.Movie.description.like(exp),
)
)
)
# would try the following approache for dynamic search
return db_movie
for colnamename, opname, value in criterions:
db_movies = db_movies.where(getattr(getattr(models.Movie, name), opname)(value))
return db_movies
def get_movie_by_id(db: Session, id_: str = ""):