Create a model filed which corresponds to a queryset
Sorry not going to give you any code as I am not going to do the work for you. I would suggest you think about how you would want to design your database. 
For example, do you want just one model that has all the books and than has a couple fields that indicate if it is a "best seller" or considered an "old book". 
So for this case, to find "old books" you might want a timestamp field and then run a query that considers books passed a certain date to be old. That could be one list.
For best sellers, you could have a boolean field where you yourself indicate if that book is a best seller. Then you run a query filtering by that boolean field. That could be another list.
So just think of what are the exact lists you want, and how could you efficiently query for this for this.
I am using Python Django. I want to have a dynamic homepage. To be exact, I want to show different lists of books. For example one list might be best sellers and the other might be old books. These lists could be added in the future and I need them to be dynamic. Each list has a title and a queryset corresponding to books within that list. What is the best practice to handle this? What should be the properties of my List model?
Update
The thing is that I do not want to change my front-end design each time that I might have a new list. These lists should be dynamic. For example, I might want to add a new list let's say top of 2018 and I know what the queryset is. I want to have a model such that every instance of that model corresponds to one of these lists and then the only thing I need to do is to create a new instance which has the queryset and title of the list. Then I want my website to return all of these lists when some one requests to get the home page.