Python Collections - named tuple is to access by the names specified and deque is to append and pop the elements from both sides of queue are explained with real time examples in part 1 of collections series
This blog post will help you to get deeper into Django Migrations - how Migrations works and how to create or add our custom migrations. Migrations are mainly for keeping the data model of you database up-to-date.
It is a bit pricy if you want to host code for collaboration using bitbucket or github on your own VPS or On-Premisis servers. Gitlab in midst of this provides a community edition which is packed with essential features and also free of cost. Both Editions ship with CI integrated in it and also can handle 3rd party CI applications like Jenkins or Bamboo ..etc.,
Ansible is a scripting language mostly used to automate installing applications, deploying apps etc.. Why Ansible: You may think why learn new language if I can do the same using shell scripts, well that's ok but in my opinion ansible doesn't take much time to learn and shell scripts could become complex as the projects scale up. You can read afurther details over here(https://news.ycombinator.com/item?id=6431552).
When you want to track your exception and log mesages in a UI rather than storing it in a file(which we usually do), we can use SENTRY. Sentry provides real-time crash reporting and exception tracking for your web and mobile apps.
Django provides built in authentication which is good for most of the cases, but you may have needs that are being served with the existing system. For Ex: You want 'email' for authentication purpose rather than Django's username field and you want an extra field called 'display_name' as full name for the logged in User. To meet the above requirements, we need to customize Django's built-in user model or substitute a completely customized model.