Now Build your First Website with Python and Django is written, it’s time to start updating the content for the Second Edition of Mastering Django: Core (Core 2E).
For something that just started out as an experiment, Core has grown way beyond my expectations and I sincerely hope you have got as much out of it as I have.
Over the last year and a bit I have had plenty of great feedback and have noted three recurring issues:
- Some sections (like forms and generic views) needed expanding with more examples and screenshots;
- Some of the later sections were “just the docs”; and
- Downloadable source code would be helpful.
I plan on addressing all three in Core 2E, but right now, I would really appreciate some feedback from you.
I have pasted a table of planned updates below. If you could have a look at my plan and send me an email with further suggestions and feedback on how I might improve the plan, I would be very grateful.
Before you send me anything though, please take note:
- It is Mastering Django: CORE. Any third-party apps or modules that are not core Django, will go in other tutorials/courses.
- Give ReST a rest. Haha :). Seriously, I get it. Lots of people want more content on ReST API’s in Django. I am writing tutorials and a premium course in 2018 solely dedicated to ReST.
The Work-in-progress Core 2E Roadmap
|Chapter No||Chapter Name||Planned Changes for Second Edition|
|1||Getting Started||Update install instructions to Python 3.6 and Django 1.11.|
|2||Django Views and URLconfs||Update code for Django 1.11|
|3||Django Templates||Update introductory material to Django 1.11. Update theory to hands on marking up of a HTML template (taken from First Website book), creating child and parent templates and create functioning views where learner can practice using tags and filters in a real template|
|4||Django Models||Update code for Django 1.11|
|5||The Django Admin||Update content and screenshots to Django 1.11. Add new content on Admin Actions and the Admin documentation generator|
|6||Django Forms||Substantially update. Remove hand coding of forms (like who does that any more??). Introduce modern approach to form creation and management. Add more advanced form topics including styling, customization, model forms and multipart. Add lots of working examples|
|7||Advanced Views and URLconfs||Remove. Reversing URLs, passing extra context etc will all be covered in beefed up chapter 3.|
|8||Advanced Templates||More than half of this is from Django documentation. Collate topic areas and see how practical examples can be created to build on content from Chapter 3. Remove all Django docs and only reference where needed|
|9||Advanced Models||More than half of this is from Django documentation. Collate topic areas and see how practical examples can be created to build and manipulated some more advanced models. Remove all Django docs and only reference where needed|
|10||Generic Views||Complete rewrite. Build practical examples of all the generic views (excl. authentication views)|
|11||User Authentication in Django||Most of this is unchanged from the Django documentation. Users in the admin is OK – update and expand a little. Rewrite with working examples of all the authentication CBVs. Remove all Django docs and only reference where needed|
|12||Testing in Django||More technical content is from the Django docs. Remove and reference where needed. Build some more tests for existing app. Also look at some of Django’s tests as illustrative examples and consider putting in a section with use of assert False and deeper look into Django’s error pages.|
|13||Deploying Django||Keep section on scaling. Rewrite deployment tasks. Add actual deployments. Maybe PythonAnywhere, Heroku, Digital Ocean and Web Faction?|
|14||Generating Non-HTML Content||Add more content and examples on CSV and PDF. Remove sitemaps and RSS as they are copied from the Django docs. Add emailing from Django, uploading CSV as an admin action and serialization of data to JSON etc.|
|15||Django Session||This is from the Django docs. Write some practical examples to work with the book code. Remove the rest.|
|16||Django Cache Framework||Remove. Caching is hard to demonstrate in test environment and dummy cache not very illustrative. Reference Django docs in other parts of book that caching is mentioned.|
|17||Django Middleware||All from the docs. Changes from MIDDLEWARE_CLASSES to MIDDLEWARE is covered in new chapter “What’s Changed from Django 1.8?”. Potentially turn included middleware and middleware ordering into an appendix, otherwise remove|
|18||Internationalisation||Remove. The docs are the best reference for this. Reference docs from other parts of book that mentions internaltionalization|
|19||Security in Django||Remove. The docs are the best reference for security in Django. Reference where applicable|
|20||More on Installing Django||Remove. Reference uninstalling and installing dev version in Chapter 1|
|21||Advanced Database Management||Rewrite. Provide connection settings for each database and any practical advice that I can find that complements the docs, otherwise remove and reference where applicable|
|A||Model Definition Reference||Update|
|B||Database API Reference||Update|
|C||Generic View Reference||Remove – cover all examples in Chapter 10|
|E||Built-in Template Tags and Filters||Update|
|F||Request and Response Objects||Update|
|G||Developing Django with Visual Studio||Update. Potentially add content on debugging in VS as well as using VS Code as a more lightweight alternative to VS|
|New||What Changed from Django 1.8?||Overview of major changes between 1.8 and 1.11|
|New||??||New content on pagination, flat pages, messages and logging. Maybe add some content on signals as well?|
As I said above, if you have some suggestions or feedback on how I can improve on this plan, please send me an email. Remember the caveats tho – no third-party apps and no ReST 😉
All the best with your Django programming.