Suggestion : Search with dynamic parameters
This commit is contained in:
parent
b985e7590a
commit
6a931228c3
20
crud.py
20
crud.py
|
@ -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 = ""):
|
||||
|
|
Loading…
Reference in New Issue