1. As a Django dev dig deep into Django’s internals, there is loads to learn from its codebase, particularly meta classes in the orm and form frameworks. The template engine is also highly complex. Try building a tool that scratches your own itch with Django, and integrate it deeply using some of the techniques Django uses. Read lots of its code, work out how it works.
2. I think a good project to explore other areas of Python would be a web scraping then data processing project. Find something that interest you, build a scraper that extracts LOADS of data from the web or a specific site about it. Then analyse that data using NumPy and Pandas. It will teach you a bunch of new tools.
3. If you are interested in ML there a loads of interesting academic projects that have released their code on GitHub. Find one that, again, interests you (image processing, text generation, computer vision), download it, get it running, and then modify it to do something else. Or package it as a web app or something. You will learn loads about how these tools work.
Two more resources that I really like:
1. Pycon videos - they're posted free on youtube. It's a great way to explore interesting problems with interesting people.
2. Another book on python by Harry Percival (he does a lot of TDD stuff) - Architecture Patterns with Python. This book is relatively new. It targets an rather niche audience (web devs). But it's hard-won knowledge and really well written. It's a wonderful resource for python devs, and a book I wish more people knew about. https://www.oreilly.com/library/view/architecture-patterns-w...
Claim the issue and ask for some help (after doing your homework), and I suspect you'll get helpful direction. That was my experience anyways.
It will likely take some time to find something that looks interesting and solvable, but that's the best way to learn IMO so it's worth the grunt work.
* "Fluent Python" (https://www.oreilly.com/library/view/fluent-python-2nd/97814...) — takes you through Python’s core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time
* "Serious Python" (https://nostarch.com/seriouspython) — deployment, scalability, testing, and more
* "Practices of the Python Pro" (https://www.manning.com/books/practices-of-the-python-pro) — learn to design professional-level, clean, easily maintainable software at scale, includes examples for software development best practices
Django's code leans heavily into advanced Python features like metaprogramming. To use Django, you don't need to understand it, but once you start customizing things or building on what Django provides, you need to read through Django's code to understand it. And if you don't know things like metaprogramming, you'll get lost quickly.
There's not a lot of great resources for intermediate Python developers to learn these concepts. I tried reading Fluent Python but found it difficult to follow. I then checked out Learning Python 5th Ed., which is a little dated at this point, but has some good chapters on metaprogramming at the end.
That's basically how I started to get my arms around these advanced Python features to be able to understand Django's codebase a little better.
Hands-on stuff: Write command-line tools and libraries that are useful for yourself or that are somehow fun. Try out some existing or 3rd party libraries.
How Python was Shaped by leaky Internals, Armin Ronacher: https://youtu.be/qCGofLIzX6g
What Does It Take To Be An Expert At Python?: https://youtu.be/7lmCu8wz8ro
and maybe also
When Python Practices Go Wrong: https://youtu.be/ZdVgwhHXMpE
What does advanced Python mean to you?
Answers will dictate what makes sense for you. Since you said you're a Django dev, maybe try re-implementing a library/dependency you use. Start with something obvious, and then maybe something less so.
You'll learn quickly how much of it is advanced Python vs advanced Django. Python is very deep, but you don't really need to know most of it. And the ones who do, know it because they were trying to accomplish something specific.[1]
[1] Tweet about slots by author of Flask - https://mobile.twitter.com/mitsuhiko/status/5004329133817487...