0
0
Djangoframework~30 mins

Search and filter options in Django - Mini Project: Build & Apply

Choose your learning style9 modes available
Search and filter options
📖 Scenario: You are building a simple Django web page to show a list of books. Users want to search for books by title and filter them by genre.
🎯 Goal: Create a Django view and template that display a list of books. Add a search box to find books by title and a dropdown to filter books by genre.
📋 What You'll Learn
Create a list of book dictionaries with title and genre
Add a variable to hold the search keyword
Filter the books list by the search keyword and selected genre
Render the filtered books in a Django template with a search form
💡 Why This Matters
🌍 Real World
Search and filter features are common in websites and apps to help users find content quickly and easily.
💼 Career
Understanding how to implement search and filter options in Django is a key skill for web developers building user-friendly interfaces.
Progress0 / 4 steps
1
Create the initial books data
Create a list called books with these exact dictionaries: {'title': 'Django for Beginners', 'genre': 'Programming'}, {'title': 'Cooking 101', 'genre': 'Cooking'}, {'title': 'Python Tricks', 'genre': 'Programming'}, {'title': 'Gardening Basics', 'genre': 'Hobby'}.
Django
Need a hint?

Use a Python list with dictionaries. Each dictionary has keys 'title' and 'genre'.

2
Add search and filter variables
Create two variables: search_query set to an empty string '', and selected_genre set to 'All'.
Django
Need a hint?

Set search_query to an empty string and selected_genre to the string 'All'.

3
Filter books by search and genre
Create a list called filtered_books that includes books from books where the search_query is in the book's title (case insensitive) and the book's genre matches selected_genre or selected_genre is 'All'. Use a list comprehension.
Django
Need a hint?

Use a list comprehension with conditions for title containing search_query and genre matching selected_genre or 'All'.

4
Render filtered books in Django template
In a Django template, create a form with a text input named search_query and a select dropdown named selected_genre with options 'All', 'Programming', 'Cooking', and 'Hobby'. Below the form, use a for loop over filtered_books to display each book's title and genre inside <li> tags.
Django
Need a hint?

Use a GET form with input and select elements named exactly search_query and selected_genre. Loop over filtered_books with Django template tags.